输入2个正整数a和n,求a+aa+aaa+aa……a(n个a之和)。例如,输入2和3,输出246(2+22+222)。

# include <stdio.h>
# include <math.h>
int main(void)
{
int a,n,i,s;
printf("Input a n:");
scanf("%d&d",&a,&n);
s=0;

for(i=1;i<=n;i++){
s=s+pow((float)a,(float)i);
}

printf("s=%d\n",s);
return 0;
}
哪里出错了??

是 2+ 22 +222 。。。
你的程序是 2 + 2*2 +2*2*2 。。。
如果不考录溢出的话 你可以 用
for (int i=0;i<n;i++)
{
S =S + 2*(n-i)* pow(10,i);
}
考虑溢出的话 一般用数组 保存每个位的数 比较麻烦,自己想吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-13
如果是这个3+33+333=369,你那就错了,你那程序只是符合特别的
第2个回答  2012-03-13
#include <stdio.h> void main() {int i,a,n; int sum=0,t=0; scanf("%d",&a); scanf("%d",&n); for(i=0;i<n;i++) {t=t+a;追问

我只想知道我错在哪里 该怎么改

第3个回答  2012-03-13
这个可以满足你的要求
# include <stdio.h>
# include <math.h>
int main(void)
{
int a,n,i,f1=0,f2=0,sum=0;
printf("Input a n:");
scanf("%d%d",&a,&n);
f1=a;
for(i=1;i<n;i++)
{
f2=a*pow(10,i)+f1;
f1=f2;
sum+=f1;

}
sum+=a;
printf("sum=%d\n",sum);
return 0;
}追问

sum+=a 什么意思 我学的还比较初级 不知道

第4个回答  2012-03-13
scanf("%d%d",&a,&n);
相似回答