Java实现求阶乘和的三种方法
程序员文章站
2022-06-28 16:31:59
今天考试没考好,所以好好反省了一下,说明自己的基础知识不够牢固,所以对每个编程题进行研究。第一种解法:原始的利用for循环题目:求1!+2!+3!+4!+…+N!的值public class Sum {public static void main(String[] args){long s;long sum=0;for(int j=1;j<=20;j++){//外循环s=1; for(int i=1;i<=j;i++){//内循环,求对应数的乘方...
今天考试没考好,所以好好反省了一下,说明自己的基础知识不够牢固,所以对每个编程题进行研究。
第一种解法:原始的利用for循环
题目:求1!+2!+3!+4!+…+N!的值
public class Sum {
public static void main(String[] args){
long s;
long sum=0;
for(int j=1;j<=20;j++){//外循环
s=1;
for(int i=1;i<=j;i++){//内循环,求对应数的乘方
s=s*i;
}
sum=sum+s;
}
System.out.println("总和为:"+sum);
}
}
第二种方法:利用方法
public class Sum {
private static long factorial(int num) {//获取相应数的阶乘方法
if( num==1){
return 1;
}
return num*factorial(num-1);
}
public static long sum(int num){//求对应数的和的方法
if( num==1){
return 1;
}
return factorial(num)+sum(num-1);
}
public static void main(String[] args) {
System.out.println(sum(20));
}
}
第三种方法:for循环+方法
public class FacDemo {
//求阶乘的方法
public long fac(int n){
long s=1;
for(int i=1;i<=n;i++){
s*=i;//s=s*i;
}
return s;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
FacDemo facDemo=new FacDemo();
long fac=facDemo.fac(3);
System.out.println("3!="+fac);//测试是否正确
//求1!+2!+3!+4!+..10!
long sum=0;
for(int i=1;i<=20;i++){
fac=facDemo.fac(i);
sum+=fac;
}
System.out.println("1!+2!+3!+4!+..20!="+sum);
}
}
本文地址:https://blog.csdn.net/Linwang2020/article/details/110291354
下一篇: Java中方法的参数传递