Java编程题: 编写代码实现某个数字的连续累加和(在键盘上输入2 和 3 最终实现求: 2 + 22 + 222的和)

编程题: 编写代码实现某个数字的连续累加和(在键盘上输入2 和 3 最终实现求: 2 + 22 + 222的和)

思路:外循环结束第二个数字是几就循环几次,而内循环则看是第几次循环,列如:
用户输入2,3,那么外循环循环3次,每次循环都会执行内循环,内循环的条件是j<i,也就是说第一次循环i是1,循环一次结果是2,
第二次循环,内循环i是2,执行两次字符串拼接结果就是22,第三次就是222最后转换为int,我这里是把功能单独放在方法里面

package 编程题;

import java.util.Scanner;
   /*
   编程题:  编写代码实现某个数字的连续累加和(在键盘上输入2 和 3 最终实现求: 2 + 22 + 222的和)

   思路:外循环结束第二个数字是几就循环几次,而内循环则看是第几次循环,列如:
     用户输入2,3,那么外循环循环3次,每次循环都会执行内循环,内循环的条件是j<i,也就是说第一次循环i是1,循环一次结果是2,
     第二次循环,内循环j是0,而i是2,执行两次字符串拼接结果就是22,第三次就是222
     */
public class figures {
    public static void main(String[] args) {

        System.out.println("连续累加和(在键盘上输入2 和 3 最终实现求: 2 + 22 + 222的和)");
        Scanner scan = new Scanner(System.in);  //创建键盘输入对象
        System.out.println("请输入第一位数");
        int s = scan.nextInt();   //拿变量s接收用户输入的第一个数字
        System.out.println("请输入第二位数");
        int y = scan.nextInt();    //拿变量y接收用户输入的第二个数字
        figures f = new figures();  //创建本类对象 用类名创建
        //使用对象f 调用本类中的cumulative方法 (因为是实列方法,只能用对象调)
        //调用的时候需要传两个参数,我们把用户输入第一个数字s和第二个数字y传进去
        int i= f.Cumulative(s,y); //调用后方法执行结束有一个返回值,拿变量i接收
        System.out.println(i);   //输出结果

    }
    public int Cumulative(int a,int b){  //调用方法会传两个参数进来
        //这个方法使用的是字符串拼接法
        StringBuffer stringBuffer=new StringBuffer();   //先创建字符串拼接对象
        Integer i1 ;  //因为最后返回的是int类型的整数,需要使用Integer的parseInt方法把字符串转换为int
        int i2 = 0;  //整数int类型的变量
        String ss = String.valueOf(a); //把变量a转换为字符串
        for (int i = 1;i<= b;i++){  //循环

            for (int j = 0; j < i ; j++) {  //嵌套循环
                stringBuffer.append(ss);//拼接
            }
            i1=Integer.parseInt(stringBuffer.toString());//转换为Integer
            i2 += i1;   //把i1的值累加到int类型的i2变量上  求和
            stringBuffer = new StringBuffer();  //累加完一次要清空,不然结果会一直累加,我们只需要累加每次内循环结束的时的值

        }
        return i2;  //整个循环体结束,返回i2,
    }

}

测试结果
运行结果图
好了,大家有疑问或者有其他的需要欢迎在评论区评论
博主 -陈铁马-如果对你有用希望可以点赞或收藏哦,关注博主,经常更新Java编程题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值