编程题: 编写代码实现某个数字的连续累加和(在键盘上输入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编程题