题目描述:
输入n和a,求s = a + aa + aaa + aaaa + aa…a的值,其中n、a是数字。例如n=5,a=2时,求2 + 22 + 222 + 2222 + 22222的值。
解法:
先求出通项公式,以n=5, a = 2为例。
0 + 2 + 22 + 222 + 2222 + 22222
设每一项的前一项为pre, 当前为cur,
令 m = 1;
当cur = 2时,pre = 0, cur = 2 * m + pre; m = m * 10;
当cur = 22时,pre = 2 * 1 + pre; cur = 2 * m + pre; m = m * 10;
当cur = 222时,pre = 2 * 10 + pre; cur = 2 * m + pre; m = m * 10;
…所以 cur = 2 * m + pre;
代码(java)
public class T1 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int b = s.nextInt();
int sum = 0;
int pre = 0;
int m = 1;
while (n-- > 0) {
sum += pre + b * m;
pre = pre + b * m;
m *= 10;
}
System.out.println(sum);
s.close();
}
}

2498

被折叠的 条评论
为什么被折叠?



