C语言.编程计算a+aa+aaa+……+aa…a(n个a)的值,要求n和a由用户从键盘输入. 假设输入2和3 输出246

2024年12月02日 13:49
有4个网友回答
网友(1):

这个题利用循环结构就好了,具体代码如下:

#include 
#include
#include

 int sum(int n, int a);

 main()

int a , n ;

printf("Input a,n:\n");
scanf("%d,%d",&n,&a);
printf("sum=%ld\n",sum(n,a));

system("pause");
 }

 int sum(int a,int n)
 {
int i ;
int A=a ;
int s=0 ;

for(i=1;i<=n;i++)
{
s+=A;
A=A+a*pow((double)10,i);
}
return s;
 }

网友(2):

#include
int main(void)
{
int a,n,m,i,s=0,t=0;
printf("Input a:");
scanf("%d",&a);
printf("Input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=t*10+1;
m=a*t;
s+=m;
}
printf("%d\n",s);
return 0;
}

这里我如果循环里的用a的话,在循环后a的值会被改变,譬如说你的程序里,i=1,a=22,那么下轮循环时,a会以22计算。

网友(3):

a值应该不能动的,要不你原来的a值就没了

循环前加个 t=a
循环里改下

s+=a; 改成 s+=t;
t=t*10+1; 改成 t=t*10+a;
a=a*t; 这步直接去掉

我学的其他编程,不过这个还是能看懂,你最好注意下在n的值比较大的时候int范围会不会超出

网友(4):

#include
int main(void)
{
int a,n,i,s=0,t=1;
printf("Input a:");
scanf("%d",&a);
printf("Input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
s*=10;
s+=i*a;
}
printf("%d\n",s);
return 0;
}