展开全部
单循环62616964757a686964616fe78988e69d8331333332616530实现-----------------------华-----丽-----丽-----的-----分-----割-----线-------------------------------------import java.util.Scanner;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.print("请输入一个整数:");
int n = input.nextInt(); //获得n值
int outNeed = n; //外层要循环 outNeed 次
int outNow = 1; //正在进行 外层 第 outNow 次 循环
int inNeed = outNow; //当前(外层 第 outNow 次循环时)内层需要循环 inNeed 次
int inNow = 1; //正在进行(外层 第 outNow 次循环)内层 第 inNow 次循环
int sum = 0; //外层前 outNeed 层 循环完毕后的和
int k = 1; //(外层前 outNeed 层) 内层第 inNow 循环完毕的积
String str = "";
while(true){ //不知道要循环多少次,则设为true
if(outNow <= outNeed){ //如果当前外层未循环完
if(inNow <= inNeed){ //如果当前内层的内层未循环完
//下一行可以解注释
//System.out.println("外层第 " + outNow + " 层,内层第 " + inNow + " 层循环---------------");
k *= inNow;
inNow++;
continue;
}else{
sum += k;
if(outNow >= 2){
str += " + " + outNow + "!";
}else{
str += outNow + "!";
}
//下一行可以解注释
//System.out.println("外层第 " + outNow + " 层循环结束!\n sum = " + sum);
//重置
inNow = 1;
k = 1;
outNow++;
inNeed++;
continue;
}
}else{
break;
}
}
System.out.println(str + " = " + sum);
}
}
while双循环实现-----------------------华-----丽-----丽-----的-----分-----割-----线-------------------------------import java.util.Scanner;
public class Test2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.print("请输入一个整数:");
int n = input.nextInt(); //获得n值
int outNeed = n; //外层要循环 outNeed 次
int outNow = 1; //正在进行 外层 第 outNow 次 循环
int inNeed = outNow; //当前(外层 第 outNow 次循环时)内层需要循环 inNeed 次
int inNow = 1; //正在进行(外层 第 outNow 次循环)内层 第 inNow 次循环
int sum = 0; //外层前 outNeed 层 循环完毕后的和
int k = 1; //(外层前 outNeed 层) 内层第 inNow 循环完毕的积
String str = "";
while(outNow <= outNeed){ //如果当前外层未循环完
while(inNow <= inNeed){ //如果当前内层的内层未循环完
//下一行可以解注释
//System.out.println("外层第 " + outNow + " 层,内层第 " + inNow + " 层循环---------------");
k *= inNow;
inNow++;
}
sum += k;
if(outNow >= 2){
str += " + " + outNow + "!";
}else{
str += outNow + "!";
}
//下一行可以解注释
//System.out.println("外层第 " + outNow + " 层循环结束!\n sum = " + sum);
//重置
inNow = 1;
k = 1;
outNow++;
inNeed++;
}
System.out.println(str + " = " + sum);
}
}
do-while双循环实现-----------------------华-----丽-----丽-----的-----分-----割-----线---------------------------import java.util.Scanner;
public class Test3 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.print("请输入一个整数:");
int n = input.nextInt(); //获得n值
int outNeed = n; //外层要循环 outNeed 次
int outNow = 1; //正在进行 外层 第 outNow 次 循环
int inNeed = outNow; //当前(外层 第 outNow 次循环时)内层需要循环 inNeed 次
int inNow = 1; //正在进行(外层 第 outNow 次循环)内层 第 inNow 次循环
int sum = 0; //外层前 outNeed 层 循环完毕后的和
int k = 1; //(外层前 outNeed 层) 内层第 inNow 循环完毕的积
String str = "";
do{
do{
//下一行可以解注释
//System.out.println("外层第 " + outNow + " 层,内层第 " + inNow + " 层循环---------------");
k *= inNow;
inNow++;
}while(inNow <= inNeed);//如果当前内层的内层未循环完
sum += k;
if(outNow >= 2){
str += " + " + outNow + "!";
}else{
str += outNow + "!";
}
//下一行可以解注释
//System.out.println("外层第 " + outNow + " 层循环结束!\n sum = " + sum);
//重置
inNow = 1;
k = 1;
outNow++;
inNeed++;
}while(outNow <= outNeed);//如果当前外层未循环完
System.out.println(str + " = " + sum);
}
}
附:
测试结果(已把代码中可以解注释的地方解注释过):
****************************************希望能够帮助到你!*********************************************
为帮楼主尽快解决问题,写到现在困死了,
如果我的回答对你有帮助,
别忘了点击我的回答下方【选为满意答案】按钮。
谢谢!