这个题利用循环结构就好了,具体代码如下:
#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;
}
#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计算。
a值应该不能动的,要不你原来的a值就没了
循环前加个 t=a
循环里改下
s+=a; 改成 s+=t;
t=t*10+1; 改成 t=t*10+a;
a=a*t; 这步直接去掉
我学的其他编程,不过这个还是能看懂,你最好注意下在n的值比较大的时候int范围会不会超出
#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;
}