Java 编写一个应用程序,实现求 s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字 例如:2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制

        对于这个题最难的地方应该就是那个2、22、222、......等等这个数据怎么产生的问题。

        那么来让我们想一个问题 ,对于“2”来说怎么---->变成“22”,我们知道要让个位变成十位的话,应该就是直接乘以10了,那么2乘以10之后变成了了20,这时候只要再加个个位2就称为了22,那么百位就是在十位的基础上乘以10再加上个位,千位就是在百位的基础上乘以10加上个位,一次类推。那么我们就可以很容易的理解了。我是这样理解的,个位因为不管哪个位(十位、百位、千位、....等等)都需要,那么我们需要一个变量来接收这个。并且不能改变这个个位的值。

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入几个数相加");//这个就是比如: a+aa+aaa+aaaa,这个a的长度
        int sc = scanner.nextInt();
        System.out.println("请输入输入你想相加的数字:");//这个就是我们要进行运算的那个值
        int n= scanner.nextInt();
        int i = n;    //首先我们定义了一个整形 i 来接收这个“个位”的值
        int num = 1;    //这个 num 是我们需要计算数值相加的和。
        for (int j = 0; j <sc-1 ; j++) {  //我们判断这个这个数的“长度”,因为个位不需要乘10,所以我们循环长度-1就行了
             i = i*10+n;    //我们对这个进行运算的值先乘以10加再加上个位
             num = num+i;    //给num赋值  这个循环的第一次就是 把个位数“2”加上十位数“22”,后面就是加上百位、千位、..等等
        }
        System.out.println(num);    //最后输出这个和num就行了

         总而言之这道题只需要弄懂那个 2 、22 、222 、2222怎么形成的就行了。就是个位有点特殊而已。把这个搞清楚 这道题就迎刃而解了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值