用C语言:输入2个正整数a和n,求a+aa+aaa+...(n个a)之和。我写这个程序错在哪?
用C语言:输入2个正整数a和n,求a+aa+aaa+...(n个a)之和。我写这个程序错在哪?例如:输入2和3,输出246(2+22+222)...
用C语言:输入2个正整数a和n,求a+aa+aaa+...(n个a)之和。我写这个程序错在哪?例如:输入2和3,输出246(2+22+222)
展开
4个回答
展开全部
不要用pow
这个结果是double的, 转成r会取整。
r=r+a*pow(10,i);改成
r=r*10+a;
例如:
#include <stdio.h> main() { int a,n,sum,i,q; scanf("%d %d",&a,&n);
q=n; sum=0; for(i=1;i<=n;i++) { sum=sum+a*q; a=a*10; q--;}
printf("%d",sum); return 0; }
扩展资料:
Ⅰ 1是正整数;
Ⅱ 每一个确定的正整数a,都有一个确定的后继数a' ,a'也是正整数(数a的后继数a‘就是紧接在这个数后面的整数(a+1)。例如,1‘=2,2’=3等等。);
Ⅲ 如果b、c都是正整数a的后继数,那么b = c;
Ⅳ 1不是任何正整数的后继数;
Ⅴ 设S⊆N*,且满足2个条件(i)1∈S;(ii)如果n∈S,那么n'∈S。那么S是全体正整数的集合,即S=N*。(这条公理也叫归纳公理,保证了数学归纳法的正确性)
参考资料来源:百度百科-正整数
展开全部
不要用pow
这个结果是double的, 转成r会取整。
r=r+a*pow(10,i);改成
r=r*10+a;
这个结果是double的, 转成r会取整。
r=r+a*pow(10,i);改成
r=r*10+a;
更多追问追答
追问
什么意思?为什么不能用pow?
追答
pow返回值是double
有精度问转为int是可能出现错误的
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的程序仅仅计算了最后一个数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的程序r的值为a,aa,aaa,这样子你的程序写错了,r = r*pow(10,i)+a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询