求 Sn=a+aa+aaa+...+aa...a之值,其中a是一个数字。例如: 2+22+222+2222(此时n=4),n由键盘输入。
#include"stdio.h"main()
{
int a,s;
scanf("%d%d",&a,&n);
s=0;
t=a;
for(i=1;i<=n,i++)
{s=s+t;
t=t*a+a;
}
printf("s=%d\n",s);
}
想知道我的为什么不对
程序代码:#include <stdio.h>
#include <stdlib.h>
int main( void )
{
unsigned a, n;
scanf( "%u%u", &a, &n );
// 先算出结果有几位
const size_t len = (a==0||n==0?1:n) + (a==9 && n>1);
char* p = (char*)malloc( len+1 );
p[len] = '\0';
unsigned carry = 0;
for( size_t i=0; i!=len; ++i )
{
carry += (n-i)*a;
p[len-i-1] = carry%10 + '0';
carry /= 10;
}
puts( p );
free( p );
}