2.s是当时循环体中求到第i个a...a的和,也就是a+aa+aaa+a...a最后一个是i个a
3.这三句中t是表示a....a(i-1个a),t*10+a之后就变成了a...a(i个a),s就是把t加上,那么加到现在加了i个不同的a...a
你这 while 里的条件什么意思……按你这题目意思 ,a 应该是 0~ 9 之间的整数吧,给你一个我写的吧
#include<stdio.h>
void main()
{
int i=1,n,a,t,sum
printf("请输入一个数字:\n")
scanf("%d",&a)
printf("请输入数字的位数:\n")
scanf("%d",&n)
sum=0 ,t=a
while (i<=n)
{
sum=sum+t
i+=1
t=t*10+a
}
printf("answer is %d\n",sum)
}
你这个算法写得有点小问题吧,首先,求这一类问题的思路是,先找9,99,999...(pow(10,i),然后通过a*(pow(10,i))/9算任何一个a,aa,aaa....int main(void)
{
long int sum=0//注意int最高32位,所以最大只能表示2^31,如果你输入的数据很大,那么求的和有可能越界,所以用long int 4个字节
int x[5]
int n=0
int a=0
scanf("%d %d",&n,&a)//输入的时候加入空格
int i=0
int res=n
for(n>=1&&i<resn--,i++)//注意,最后n=1,而不是0,因为从1-n,共n个,错误在这里,而且两个循环是同时的,而不是嵌套关系,如果嵌套的话,每次里面循环完了,x[i]的每一个值都是一样的,最后加出来的是最后一个aaaaa*5的结果,而不是所求的
{
x[i]=a*((pow(10,n))-1)/9
sum+=x[i]
}
printf("%d\n",sum)
}