用java编程写程序求1!+2!+....10!,只需用两个循环层,第一个循环是阶乘值相加,第二个循环是获取阶乘值,如下:
public class testd {
public static void main(string[] args){
//1!+2!+3!+···+10!就是1到10阶乘值的和
int sum=0;
//循环10次
for(int x=1;x<=10;x++){
//阶乘初始值设置为1
int jiecheng=1;
//循环x次
for(int y=1;y<=x;y++){
//阶乘上一个值和当前y值相乘重新赋值给阶乘
jiecheng=y*jiecheng;
}
//各个阶乘值相加
sum+=jiecheng;
}
//1~10阶乘值求和
system.out.println("1!+2!+3!+···+10!="+sum);
}
}
结果:
1!+2!+3!+···+10!=4037913
今天刚编写了这个程序。
public class test{
public static void(String args[]){
int i=1;
int j=1;
int sum;
for(;i<=10;i++){
j=j*i;sum=sum+j;}
System.out.println("1~10的阶乘和为"+sum);
}
}
public
class
Calculate
{
/**
*
计算一个数的阶乘
*
@param
number
*
@return
*/
public
static
int
factorial(int
number){
int
result
=
1;
if(number
<=0){
return
result;
}else{
for(int
i=number;i>=1;i--){
result
*=i;
}
}
return
result;
}
/**
*
计算小于等于输入数字的所有数字的阶乘求和
*
@param
number
*
@return
*/
public
static
int
calculate(int
number){
int
result
=
0;
for(int
i=1;i<=number;i++){
result
+=
Calculate.factorial(i);
}
return
result;
}
public
static
void
main(String[]
args)
{
System.out.println(Calculate.calculate(1));
System.out.println(Calculate.calculate(2));
System.out.println(Calculate.calculate(3));
System.out.println(Calculate.calculate(4));
System.out.println(Calculate.calculate(10));
}
}
//运行结果:
1
3
9
33
4037913