A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
求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上   就是太乱了。。

1 个回复

倒序浏览
求优化代码,或者优化思维,最好有更明朗的算法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马