这是CSDN上的一个题
题目详情:
给定a和n,计算a+aa+aaa+aaaa+...+a...a(n个a) 的和。
输入描述:
测试数据有多组,以文件结尾。每行输入a,n(1<=a,n<=1000000)。
输出描述:
由于结果可能比较大,所以请输出答案mod 1000000007。
答题说明:
输入样例:
1 10
输出样例:
234567893
我的最终结果是:
#include
#include
int main(void)
{
int a,n,i;
while(scanf("%d %d",&a,&n)!=EOF)
{
int sum=0,s=0;
for(i=1;i<=n;i++)
{
s=s+a*pow(10,(i-1));
sum=sum+s;
sum=sum00000007;
}
printf("%d ",sum);
}
return 0;
}
在VC6.0里面运行:
![](https://i-blog.csdnimg.cn/blog_migrate/1bd9542c127389cb30b74fb17c366696.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/990dedf957eb03f0adb0bd4c9f700adb.jpeg)
中间走了好多弯路:循环语句用了两个,循环中有循环,后来查找了一下方法发现一个for循环就可以搞定;搞完后又发现题目要求多组测试数据,并以文件结尾,于是添加“ while(scanf("%d %d",&a,&n)!=EOF)”,结果输出的结果不正确,远比正确值大,分析了一下,觉得是sum和s的赋值语句位置问题,于是将sum=0,s=0放入while的循环体中,输出结果才正确。之前的在线测试发现错误后我都能找到更正,但做完最后编译结果出错后,
![](https://i-blog.csdnimg.cn/blog_migrate/f396d09ba2fcfae829bc79fe88ecdf18.jpeg)
头都大了,找不到头绪。我觉得有两种可能:1,输出完毕后没有立即终止程序;2,对题目的解读还存在错误。希望能有大神指点,感激不尽!