2.求S=a+aa+aaa+aaaa... ...的值

题目 :求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

先分析这个式子:S=a+aa+aaa+aaaa....,后一项的值是前一项的值*10+a,键盘控制输入,那就Scanner,试着写一写代码:

        Scanner sacn = new Scanner(System.in);
        System.out.println("请输入a的值  ");
        int a = sacn.nextInt(); //2 22 222 2222 22222
        System.out.println("你想让几个数相加  ");
        int quantity = sacn.nextInt();
        int s = 0;
        for (int index = 0;index<quantity;index++){
                s = s * 10+a; //2 2+22(2*10+2) 2+22+222(22*10+2)
                              //s = 0*10+2=2  s = 2*10+2=22  s=22*10+2=222
                //s = s + s; ????? 不对得写个中间变量接收
        }

遇到问题了,每一项的值都有了,加不起来
愚蠢的我脑子里一件事想到的居然是整个数组,把这些数据都放进去然后遍历相加。
可我转念一想,反正是找个能接收的数据地方,那还不如直接整个变量呢,于是代码就变成了:

        int s = 0;
        int median = 0;//中间值 做接收
        for (int index = 0;index<quantity;index++){
                median = median * 10+a; //2 2+22(2*10+2) 2+22+222(22*10+2)
                //s = 0*10+2=2  s = 2*10+2=22  s=22*10+2=222
                //s = s + s; ????? 不对得写个中间变量接收
                s = median + s;
        }

输出运行一下:
m0ndcams.png

m0nde29h.png

靠,溢出了 得他喵的long类型,改了类型之后再试试:

m0ndfxj9.png

不管咋整,实现了!

打赏
评论区
头像