黑马程序员技术交流社区
标题: 求S(n) = a+aa+aaa+aaaa+...+aa..a之值 [打印本页]
作者: aSmallStone 时间: 2015-6-21 21:01
标题: 求S(n) = a+aa+aaa+aaaa+...+aa..a之值
/*
求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上 就是太乱了。。
作者: aSmallStone 时间: 2015-6-21 21:02
求优化代码,或者优化思维,最好有更明朗的算法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |