首页 > 代码库 > 厦门大学线下编程比赛第一题:求和
厦门大学线下编程比赛第一题:求和
题目详情
给定a和n,计算a+aa+aaa+aaaa+...+a...a(n个a) 的和。
输入描述:
测试数据有多组,以文件结尾。每行输入a,n(1<=a,n<=1000000)。
输出描述:
由于结果可能比较大,所以请输出答案mod 1000000007。
答题说明
输入样例:
1 10
输出样例:
234567893
由公式可以发现,后一个数可以由前一个推出,前一个数乘以10*pow(10,a的位数),就可以得到后一个数。
代码:
#include <iostream> #include <cstdio> using namespace std; const int mod=1000000007; int main() { long long a,b,c,ans,n,m,temp; while(~scanf("%I64d%I64d",&a,&n)) { m=0; temp=a; while(temp) { m++; temp=temp/10; } c=1; for(long long i=1;i<=m;i++) c=c*10; ans=a%mod; b=a%mod; for(long long i=2;i<=n;i++) { b=(b*c+a)%mod; ans=(ans+b)%mod; } printf("%I64d\n",ans); } return 0; }
厦门大学线下编程比赛第一题:求和
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。