给定a和n,计算a+aa+aaa+aaaa+...+a...a(n个a) 的和。
输入描述:
测试数据有多组,以文件结尾。每行输入a,n(1<=a,n<=1000000)。
输出描述:
由于结果可能比较大,所以请输出答案mod 1000000007。
题目分析:
同余定理:
s=0;
abc&MOD=((a*10%MOD+b%MOD)*10%MOD+c%MOD)%MOD:
//迭代形式
s=0;
s=(s*10%MOD+a%MOD)%MOD;
s=(s*10%MOD+b%MOD)%MOD;
s=(s*10%MOD+c%MOD)%MOD;
abc%MOD=s;
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <stack>
#include <algorithm>
using namespace std;
const int maxn = 1005;
typedef long long LL;
const double PI = 3.1415926535898;
const int mod = 1000000007;
int a, n;
void init()
{
}
void solve()
{
char str[10];
sprintf(str, "%d", a);
int len = strlen(str);
LL s = 0, sum = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < len; j++)
s = (s * 10 % mod + (str[j] - '0') % mod) % mod;
sum = (sum%mod + s%mod) % mod;
}
cout << sum << endl;
}
int main()
{
//freopen("f:\\input.txt", "r", stdin);
while (~scanf("%d%d", &a, &n))
{
solve();
}
return 0;
}