本实验用4种方法实现阶乘:N!
即for循环;do--while循环;while循环和递归实现
在新建的项目内新建一个factorial主类
输入下列代码
1 import java.util.Scanner; 2 public class factorial { 3 4 /** 5 * @param args 6 */ 7 public static void main(String[] args) { 8 // TODO Auto-generated method stub 9 10 Scanner scanner=new Scanner(System.in); 11 //构建Scanner类的对象scanner,关联于标准输入流System.in 12 float sum=1;//用于存储结果 13 14 //for循环实现 15 System.out.println("for循环实现阶乘"); 16 System.out.print("输入阶乘值:"); 17 int a=scanner.nextInt(); 18 for(int i=1;i<=a;i++){ 19 sum*=i; 20 System.out.print(i); 21 if(i<a) System.out.print("*"); 22 } 23 System.out.println("="+sum); 24 25 //do--while循环实现 26 System.out.println("\ndo--while循环实现阶乘"); 27 int j=1;sum=1; 28 System.out.print("输入阶乘值:"); 29 int S=scanner.nextInt(); 30 do{ 31 sum*=j; 32 System.out.print(j); 33 if(j<S) System.out.print("*"); 34 j++; 35 }while(j<=S); 36 System.out.println("="+sum); 37 38 //while循环实现 39 System.out.println("\nwhile循环实现阶乘"); 40 System.out.print("输入阶乘值:"); 41 int x=scanner.nextInt(); 42 int l=1;sum=1; 43 while(l<=x){ 44 sum*=l; 45 System.out.print(l); 46 if(l<x) System.out.print("*"); 47 l++; 48 } 49 System.out.println("="+sum); 50 51 //递归实现 52 System.out.println("\n递归实现阶乘"); 53 System.out.print("输入阶乘值:"); 54 int y=scanner.nextInt(); 55 System.out.println("="+jie(y)); 56 57 System.out.println("\n以上,结束!"); 58 } 59 static int jie(int b) 60 { 61 if(b==0) 62 return 1; 63 else 64 {System.out.print(b); 65 if(b>1) System.out.print("*"); 66 return b*jie(b-1);} 67 } 68 69 } 70
运行结果:
以上,实验结束!
心得:
在静态主方法引用函数必须在主类里定义,为静态函数,否则会报错!
所以上述代码的递归函数名为
static int jie(int b)
原文:https://www.cnblogs.com/lul3/p/10559873.html