import java.util.Scanner;publicclassdiGui{publicstaticvoidmain(String[] args){
System.out.println("输入数字:");
Scanner sc =newScanner(System.in);int n = sc.nextInt();long sum =fun(n);
System.out.println("第"+n+"项的阶乘为:"+sum);}publicstaticlongfun(int n){long sum =0L;if(n==1){return1;}else{
sum = n*fun(n-1);}return sum;}}
测试:
输入数字:
12
第12项的阶乘为:479001600
递归求n项累加eg:1+2+3+4+…+n
原理:sum = n+{(n-1)+(n-2)+(n-3)+(n-4)+(n-5)+…+1}
(n-1) = {(n-2)+(n-3)+(n-4)+(n-5)+…+1}
安排!
import java.util.Scanner;publicclassdiGui{publicstaticvoidmain(String[] args){
System.out.println("输入数字:");
Scanner sc =newScanner(System.in);int n = sc.nextInt();long sum =fun(n);
System.out.println("从1到"+n+"累加和为:");
System.out.println(sum);}publicstaticlongfun(int n){long sum =0;if(n==1){return1;}else{
sum = n +fun(n-1);}return sum ;}}
测试:
输入数字:
1000
从1到1000累加和为:
500500