题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
看到题目第一眼我是想用for语句来实现这个程序的,毕竟只需要总结一个公式sum += (n - i -1)*a*10^(i-1)就可以算出sum,然后我就开始写了下面的程序。
#include <stdio.h>
int main()
{
int a,n,i,sum = 0;
printf("input a and n\n");
scanf("%d%d",&a,&n);
printf("a=%d,n=%d\n",a,n);
for(i = 1; i <=n; i++)
{
sum += (n - i -1)*a*10^(i-1);//错误在此处
}
printf("sum=%d\n",sum);
return 0;
}
运行后发现怎么都不对,找了半天都没发现问题所在,最后求助同学才发现10的次方是不能用^这个符号来实现的。。。。。。难受啊,亏我找了半天错误。后来就写了下面的程序。
#include <stdio.h>
int main()
{
int a,n,tmp=0,sum=0,count=1;
printf("input a and n\n");
scanf("%d%d",&a,&n);
printf("a=%d,n=%d\n",a,n);
while(count<=n)
{
tmp += a;
sum += tmp;
a = a*10;
++count;
}
printf("sum=%d\n",sum);
return 0;
}