7-38 数列求和-加强版 (20 分)
给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。
输入格式:
输入数字A与非负整数N。
输出格式:
输出其N项数列之和S的值。
输入样例:
1 3
输出样例:
123
Java 代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String[] input = in.readLine().split("\\s");
int A = Integer.parseInt(input[0]);
int N = Integer.parseInt(input[1]);
StringBuilder sb = new StringBuilder();
int rest = 0, res = 0;
for (int i = N; i >= 1; i--) {
res = A * i + rest;
if (res < 10 || i == 1) {
while (res != 0) {
sb.append(res % 10);
res /= 10;
}
} else {
sb.append(res % 10);
rest = res / 10;
}
}
System.out.println(sb.length() > 0 ? sb.reverse() : 0);
}
}