实验三:分别用for,while和do-while循环语句以及递归方法计算n!,并输出算式
package day01;
import java.util.Scanner;
public class 阶乘 {
public static void main(String[] args) {
Scanner shuru=new Scanner(System.in);
int n,i;
System.out.println("输入您要计算的n");//
n=shuru.nextInt();
System.out.println("选择你的计算方式!!输入 1为for输入2位while()输入3为递归 输入4为do while()");
i=shuru.nextInt();
switch(i) {
case 1: xunhuang(n); break;
case 2: While(n);break;
case 3: digui01(n);break;
case 4: DoWhile(n);break;
}
}
private static void DoWhile(int n) {
int i=1;
int sum=1;
do {
sum=sum*i;
System.out.print(i+"*");
i++;
}while(i<n);
sum=sum*n;
System.out.println(n+"="+sum);
}
private static void digui01(int n) {
int sum;
sum=digui(n);
System.out.println(sum);
}
private static void While(int n) {
int i=1,sum=1;
while(i<n)
{
sum=sum*i;
System.out.print(i+"*");
i++;
}
sum=sum*n;
System.out.print(n+"="+sum);
}
private static void xunhuang(int n) {
int temp=1;
int sum=1;
for(int i=1;i<n;i++) {
sum=sum*i;
System.out.print(i+"*");
}
sum=sum*n;
System.out.print(n+"="+sum);
}
private static int digui(int n) {
if (n <= 0) {
return 0;
}
if (n == 1) {
System.out.print(n+"=");
return 1;
}
System.out.print(n+"*");
return n * digui(n-1);
}
}
import java.util.Scanner;
public class 阶乘 {
public static void main(String[] args) {
Scanner shuru=new Scanner(System.in);
int n,i;
System.out.println("输入您要计算的n");//
n=shuru.nextInt();
System.out.println("选择你的计算方式!!输入 1为for输入2位while()输入3为递归 输入4为do while()");
i=shuru.nextInt();
switch(i) {
case 1: xunhuang(n); break;
case 2: While(n);break;
case 3: digui01(n);break;
case 4: DoWhile(n);break;
}
}
private static void DoWhile(int n) {
int i=1;
int sum=1;
do {
sum=sum*i;
System.out.print(i+"*");
i++;
}while(i<n);
sum=sum*n;
System.out.println(n+"="+sum);
}
private static void digui01(int n) {
int sum;
sum=digui(n);
System.out.println(sum);
}
private static void While(int n) {
int i=1,sum=1;
while(i<n)
{
sum=sum*i;
System.out.print(i+"*");
i++;
}
sum=sum*n;
System.out.print(n+"="+sum);
}
private static void xunhuang(int n) {
int temp=1;
int sum=1;
for(int i=1;i<n;i++) {
sum=sum*i;
System.out.print(i+"*");
}
sum=sum*n;
System.out.print(n+"="+sum);
}
private static int digui(int n) {
if (n <= 0) {
return 0;
}
if (n == 1) {
System.out.print(n+"=");
return 1;
}
System.out.print(n+"*");
return n * digui(n-1);
}
}
实验结果:
实验心得:
- 一开始实验的时候,因为太久没编写程序,所以很多东西都忘了,都是看了书一步一步来的。
虽然java是由c++和c变换而来的,但输出的语句的写法还是不一样的,加上之前学c++和
c也不是很好,所以还是要看书一步一步来。
2.便写程序的时候,我把用while和do-while做的部分弄到了类jin外,导致了编程的出错。
3.使用变量名的时候,java没有全局变量有局部变量,我在变量名的作用域外使用了它,导致出错了。
4.通过本次实验,我发现自己对编写程序越来越生疏了,以后还是要加紧练