import java.util.Scanner;
创新互联长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为皇姑企业提供专业的成都网站制作、成都网站设计,皇姑网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
public class nj {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a = 1;
while(n != 1){
a = a*n;
n--;
}
System.out.println(a);
}
}
public class Qiuhe {
public Qiuhe() {
}
public static void main(String args[]){
int sum = 0;//用来存放1!+2!+3!+4!+.....+10!的值,初始值为零
for(int i = 0; i 10; i++ ){
sum += jiecheng(i + 1);//调用jiecheng()函数算出i+1的阶乘,加到sum当中
}
System.out.println("1!+2!+3!+4!+.....+10!的值为:" + sum);
}
public static int jiecheng(int n){//算阶乘的函数
if(n == 1 || n == 0){
return 1;
}
else return n * jiecheng(n - 1);
}
}
阶乘的公式是
n!=n*(n-1)*(n-2)....*2*1
这个公式可以通过一个java的循环来实现,也就是第一种方法。
for(int i=number; i0;i--)
这个循环在i=0的时候结束, 而阶乘的结果通过result*=i来计算。
public static int compute(int number)
{
int result=1;
for(int i=number;i0;i--){
result*=i;
}
return result;
}
public static void main(String[] args)
{
System.out.println(compute(30)); //789912231223232323211
}
第二种是通过递归来实现阶乘。
递归就是方法调用自身, 最终通过一个出口来结束程序的调用。
这个出口要保证程序不出现死循环。
在上面的f(x)- n*f(x-1)这里, 出口就可以设置为
if(1==number)
{return 1;}
代码实现:
public static int cur(int number){
if(number!=0){
return number*cur(number-1);
}else return 1;
}
给你写了下代码,在主函数里调用的时候需要多少以内的阶乘相加就把参数写成多少就好。代码如下:
public static long factorial(int n) {//求n的阶乘
if(n == 1)
return 1;
return n * factorial(n - 1);
}
public static void print(int n) {//输出等号左边,比如“1! +2!”
if(n == 1) {
System.out.print("1!");
return;
}
print(n - 1);
System.out.print(" +" + n + "!");
}
public static void doFactorSum(int n) {//循环执行,输出最终结果
long result = 0;
for(int i = 1; i = n; i++) {
result += factorial(i);
print(i);
System.out.println("=" + result);
}
}
public static void main(String[] args) {
doFactorSum(20);//调用,得到最终结果
}
有什么问题再追问。
这个好办
import java.util.*;
public class Jiecheng {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("1~10");
int i= s.nextInt();
int r=0;
do{r*=i; i++;
if(i10||i0)break;}
while(i10||i0);
System.out.println(r);
}
}