厦门大学线下编程比赛第一题:求和
- 编程语言要求:Java C# C C++
- 难度等级:
- 有效期: 2014-11-05 至 2015-12-05
- 答题时长:120分钟
给定a和n,计算a+aa+aaa+aaaa+...+a...a(n个a) 的和。
输入描述:
测试数据有多组,以文件结尾。每行输入a,n(1<=a,n<=1000000)。
输出描述:
由于结果可能比较大,所以请输出答案mod 1000000007。
此题由本人AC通过,有疑问请联系fjinhao@qq.com,欢迎来此讨论交流
本题解题在求和时,第一个数为a,后一个数=前一个数a+10*10^a的位数
#include <stdio.h> #define mod 1000000007 int main(void) { long long a,n; long long t,m,c, i,result,k; while ( 2 == scanf("%I64d%I64d",&a,&n) ) { c = 0; t = a; while(t) { c++; t /= 10; } m = 1; for ( i=1; i<=c; i++) m *= 10; result = a % mod; k = a % mod; for ( i =2; i<=n; i++ ) { k = ( k*m + a)%mod; result = (result + k)%mod; } printf("%d\n",result); } return 0; }