题目详情
给定a和n,计算a+aa+aaa+aaaa+...+a...a(n个a) 的和。
输入描述:
测试数据有多组,以文件结尾。每行输入a,n(1<=a,n<=1000000)。
输出描述:
由于结果可能比较大,所以请输出答案mod 1000000007。
答题说明
输入样例:
1 10
输出样例:
234567893
分析:
思想:用空间换时间。
代码:
import java.util.Scanner;
public class Main {
final static int mod = 1000000007;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(scan.hasNext()) {
int a = scan.nextInt();
int n = scan.nextInt();
int m = Main.get_m(a);
long[] arr1 = new long[n];
long[] arr2 = new long[n];
arr1[0] = 1;
for (int i = 1; i < arr1.length; i++) {
arr1[i] = arr1[i-1] * m % mod;
}
for (int i = 0; i < arr2.length; i++) {
arr2[i] = (n-i) * arr1[i] % mod;
}
long sum = 0;
for (int i = 0; i < arr2.length; i++) {
sum = (sum + arr2[i]) % mod ;
}
System.out.println((a*sum)%mod);
}
}
public static int get_m(int a) {
int i = 1;
while (a > 0) {
a /= 10;
i *= 10;
}
return i;
}
}