C语言里求a+aa+aaa+aaaa+……有代码但是不清楚啥意思,输入a和n(位数),求他们之和

Python012

C语言里求a+aa+aaa+aaaa+……有代码但是不清楚啥意思,输入a和n(位数),求他们之和,第1张

1.i是工作变量,就是循环体中控制加i个a..a

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)

}