/* 求S(n) = a+aa+aaa+aaaa+...+aa..a之值,其中a是一个数字,n表示a的位数例如:2+22+222+2222+22222(此时n=5),n和a都从键盘输入。 */ #include<stdio.h> int main() { int a=-1,n=0,sum=0,num=0,t; printf("请输入a和n的值,以空格隔开:\n"); scanf("%d%d",&a,&n); for (int i=1; i<=n; i++) { for (int j=1; j<=i; j++) { num=a; t=a; for (int k=1; k<j; k++) { t*=10; num+=t; } }sum+=num; } printf("%d",sum); } 以上是自己解决的一道题,虽然做出来了,但是还是感觉思维有点混乱,谁有更好的算法。。。请指教,或者谁帮我改进一下代码。 明天就讲了,在线等。。 注:我是思是先算有多少位,就有多少个数字,1位是a,2位是a+10*a,3位是a+10*a+10*10*a,以此类推,每次运算完了的值都附加在sum上 就是太乱了。。
|