#include<stdio.h>
#include<math.h>
int main()
{
int a,n,i,s=0;
scanf("%d,%d",&n,&a);
for(i=0;i<=n;i++)
{
s+=a*pow(10,i);
while(i>0)
{
i--;
s+=a*pow(10,i);
}
}
printf("%d",s);
return 0;
}
题主代码修改如下:
#include<stdio.h>
#include<math.h>
int main()
{
int a,n,i,k,s=0;
scanf("%d%d",&n,&a); //scanf("%d,%d",&n,&a);
for(i=0;i<n;i++) //for(i=0;i<=n;i++)
{
s+=a*pow(10,i);
k = i;
while(k>0)
{
k--;
s+=a*pow(10,k);
}
}
printf("%d",s);
return 0;
}
你的for循环体内,i自增1后,while内又自减。看你代码意思应该加一个j=i。
for(i=0;i<=n;i++)
{
s+=a*pow(10,i);
int j=i;
while(j>0)
{
j--;
s+=a*pow(10,j);
}
}
修改如下,供参考:
//#include<math.h>
#include<stdio.h>
int main()
{
int a,n,i,k=0,s=0;
scanf("%d%d",&n,&a); //scanf("%d,%d",&n,&a);
for(i=1;i<=n;i++) //for(i=0;i<=n;i++)
{
k = k*10+a;
s += k;
//s+=a*pow(10,i);
//while(i>0)
//{
// i--;
// s+=a*pow(10,i);
//}
}
printf("%d",s);
return 0;
}