编写一个java程序,在屏幕上输出1!+2!+3!…+10!的和
问题呈现
Problem Description
求1!+2!+3!+…+20!的和
Input
无
Output
4037913
方法一:利用for循环
package demo1;
public class Founction {
/**
* 编写一个java程序,在屏幕上输出1!+2!+3!...+10!的和
*
* @param args
*/
public static void main(String args[]){
//定义一个总和的变量
int total = 0;
for (int i=1; i<=10; i++){
//累加 total = total + fn(i)
total +=fn(i);
}
System.out.println(total);
}
/**
* 给定一个数,求这个数的阶乘
* 5!=5*4*3*2*1
* 4!=4*3*2*1
* 3!=3*2*1
* 2!=2*1
* 1!=1
* @param num
* @return
*/
public static int fn(int num){
//定义一个结果变量
int result = 1;
//遍历这个数字
for (int i=num; i>0; i--){
//累乘
result *=i;
}
return result;
}
}
方法二:采用递归
package demo1;
public class Founction {
/**
* 编写一个java程序,在屏幕上输出1!+2!+3!...+10!的和
*
* @param args
*/
public static void main(String args[]){
//定义一个总和的变量
int total = 0;
for (int i=1; i<=10; i++){
//累加 total = total + fn(i)
total +=fn(i);
}
System.out.println(total);
}
/**
* 给定一个数,求这个数的阶乘
* 5!=5*4!
* 4!=4*3!
* 3!=3*!
* 2!=2*1!
* 1!=1
* fn(num) = num * fn(num-1);
*
* 递归就是方法自身调用自身,一定要有退出的标识
* @return
*/
public static int fn(int num){
//定义一个结果变量
int result = 1;
if(num>1){
//方法自身调用自身
result = num * fn(num-1);
}
return result;
}
}
★喜欢的话,还请多多点赞与关注! 感谢支持!
内容来源:腾讯课堂Java零基础入门到年薪30W