在java2实用教程书上找的基础题,一天一题,今天的题目是关于阶乘求和的。
题目如下:
编写应用程序求:1!+2!+3!+4!+5!+6!+7!+8!+9!+10!。
求解这道题目的思路是,使用for循环计算从1到10每一个数字的阶乘的结果,然后使用一个sum变量求和得到最后的结果。
代码如下:
public class Qiuhe {
public static void main(String[] args){
int i ;
int x = 1;
int sum = 0;
for(i = 1;i <= 10;i ++){
x = x * i; //x保留上一次阶乘的结果
sum = sum + x; //每次阶乘之后都相加
}
System.out.println("1!+2!+3!+4!+5!+6!+7!+8!+9!+10!="+sum);
}
}
我觉得这是比较简单的一种方法,还可以使用两个循环来做,但是时间复杂度比这个方法大。
代码如下:
public class He{
public static void main(String[] args){
int i ;
int j ;
int sum = 0;
for(i = 1;i <= 10;i ++){
int x = 1;
for(j = 1;j <= i;j++){
x = j*x;
}
sum = sum + x;
}
System.out.println("1!+2!+3!+4!+5!+6!+7!+8!+9!+10!="+sum);
}
}
还可以使用递归的方法来做,代码就不贴出来了。
(Day2)