导航:首页 > 编程语言 > 用java计算n的阶乘

用java计算n的阶乘

发布时间:2023-06-03 22:12:06

『壹』 在java中,用递归方法计算n的阶乘。

用Java求键盘输入的数的阶乘n。(递归算法)packagejiecheng; importjava.util.*; //导入java.util包中的所有类classrep{ publiclongrep(intn){ longi=0; if(n==0||n==1) i=1;

elsi=n*rep(n-1) returni; } } publicclassJie{ publicstaticvoidmain(String[]args){ intn; //此处定义要输入的数Scanners= newScanner(System.in); //以下三行用于n的值得输入System.out.print( "请输入一个整数:"); n=s.nextInt(); repf= newrep(); System.out.println(n+"!="+f.rep(n)); } }

『贰』 java输入一个数n,计算n的阶乘(5的阶乘=1*2*3*4*5)

import java.util.Scanner;

public class Test2 {
public static void main(String[] args) {
System.out.println("请输入你需要计算的物简数字:");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
int d = pp(i);
System.out.print(d);

}

public static int pp(int n) {
if (n < 2)
return 1 * n;
else
return n * pp(n - 1);
}

}
int pp(int n)
{
if(n<2)
return 1*n;
else
return n*pp(n-1);
}
这一好销段, 如果n大于2,返回n*pp(n-1)的意思,就是,任何一个N的阶乘等于n*比n小1的数的阶乘,打个比方,比如5的阶乘等于5*(4的阶乘),4的阶乘等罩袜裤于4*(3的阶乘),而1的阶乘,等于1本身。

『叁』 JAVA 求N的阶乘

//输入
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();

//单独写个递归的方法就可以了。
int f(int i){
if i <= 1 return 1; // 结束内条件
else return i * f(i-1); // 压栈,继续调容用本方法
}

『肆』 Java编程:写出求n的阶乘的方法,并算出1到7的阶乘的和

Java编程:写出求n的阶乘的方法,并算出1到7的阶乘的和方法:

先编写求阶乘的方版法,再通过for循环计算权1到7的阶乘的和。

具体实现:

publicclassTest{
publicstaticvoidmain(String[]args){
intsum=0;//保存阶乘的和
for(inti=1;i<=7;i++)
sum+=factorial(i);
System.out.println(sum);
}

//求阶乘方法,传入一个整数,返回这个整数的阶乘
publicstaticintfactorial(intnum){
intresult=1;
for(inti=1;i<=num;i++){
result*=i;

returnresult;
}
}

『伍』 java求n的阶乘,用数组做

importjava.util.Scanner;
publicclassTest{
publicstaticvoidprintArr(int[]arr){
for(inti=0;i<arr.length;i++)
System.out.print(arr[i]);
}
publicstaticvoidprintArrRev(int[]arr){
for(inti=arr.length-1;i>=0;i--)
System.out.print(arr[i]);
}
publicstaticint[]shift(int[]arr,intnum){
int[]result=newint[arr.length+num];
for(inti=0;i<arr.length;i++){
result[i+num]=arr[i];
}
returnresult;
}
publicstaticintgetDigit(intnum){
intresult=0;
intnumber=num;
while(number!=0){
number=number/10;
result++;
}
returnresult;
}
// publicstaticint[]isopsephy(int[]arr){
// intiso_number=0;
// int[]result;
// for(inti=arr.length-1;i>=0;i--){
// iso_number=(arr[i]+iso_number)/10;
// }
// intdigit=getDigit(iso_number);
// result=newint[arr.length+digit];
// for(inti=digit-1;i>=0;i--){
// result[i]=iso_number%10;
// iso_number=iso_number/10;
// }
// iso_number=0;
// for(inti=arr.length-1;i>=0;i--){
// result[i+digit]=(arr[i]+iso_number)%10;
// iso_number=(arr[i]+iso_number)/10;
// }
// returnresult;
// }
// publicstaticint[]isopsephy(intarr){
// inttemp=arr;
// int[]result;
// intdigit=getDigit(arr);
// result=newint[digit];
// for(inti=digit-1;i>=0;i--){
// result[i]=temp%10;
// temp=temp/10;
// }
// returnresult;
// }

publicstaticint[]isopsephy(int[]arr){
intiso_number=0;
int[]result;
for(inti=0;i<arr.length;i++){
iso_number=(arr[i]+iso_number)/10;
}
intdigit=getDigit(iso_number);
result=newint[arr.length+digit];
for(inti=0;i<digit;i++){
result[i+arr.length]=iso_number%10;
iso_number=iso_number/10;
}
iso_number=0;
for(inti=0;i<arr.length;i++){
result[i]=(arr[i]+iso_number)%10;
iso_number=(arr[i]+iso_number)/10;
}
returnresult;
}
publicstaticint[]isopsephy(intarr){
inttemp=arr;
int[]result;
intdigit=getDigit(arr);
result=newint[digit];
for(inti=0;i<digit;i++){
result[i]=temp%10;
temp=temp/10;
}
returnresult;
}

publicstaticint[]add(int[]arr,int[]addnum){
int[]arr_short=isopsephy(arr);
int[]arr_long=isopsephy(addnum);
if(arr_short.length>arr_long.length){
int[]temp;
temp=arr_short;
arr_short=arr_long;
arr_long=temp;
}
for(inti=0;i<arr_short.length;i++){
arr_long[i]+=arr_short[i];
}
returnisopsephy(arr_long);
}
publicstaticint[]multi(int[]arr,intmultiplier){
int[]result=newint[arr.length];
for(inti=0;i<arr.length;i++){
result[i]=arr[i]*multiplier;
}
returnisopsephy(result);
}
publicstaticint[]getMult(int[]arr,int[]multipliers){
int[]result=newint[arr.length];
int[]first=isopsephy(arr);
int[]second=isopsephy(multipliers);
for(inti=0;i<second.length;i++){
result=add(result,shift(multi(first,second[i]),i));
result=isopsephy(result);
}
returnresult;
}
publicstaticvoidmain(String[]args){
Scannersca=newScanner(System.in);
System.out.println("Pleaseinputn:");
intn=sca.nextInt();
int[]result=isopsephy(n);
for(inti=n-1;i>0;i--){
result=getMult(result,isopsephy(i));
}
printArrRev(result);
}
}

一开始写成数组从高位到低位了,注释掉了。

『陆』 java输入一个数n,计算n的阶乘(5的阶乘=1*2*3*4*5)

1、首先要理解一下阶乘的公式:

n!=n*(n-1)*(n-2)*....*2*1,5!=5*4*3*2*1

#include//头文件.h在新浪博客中无法显示加上就可以了

intmain()

{

intt=5,i=4;//要是求其他的数的阶乘的话,把t的值改为其他数,

//再把i改为(t-1)就行了

while(i>=1)

{

t=t*i;

i--;

}

printf("5的阶乘结果是:%d ",t);

return0;

}

2、运行结果如下:

『柒』 用java编写n的阶乘要求是int foo(int+x)

按照你的要求编写的n的阶乘的Java程序如下

public class Factorial{

public int foo(int x){

if(x==0 || x==1){

return 1;

}else{

return x*foo(x-1);

}

}

public static void main(String[] args){

int n=6;

Factorial f=new Factorial();

System.out.println(f.foo(n));

}

}

『捌』 java计算n的阶乘

int n=8;
int p=n;
for(int i=n;i>1;i--){
p*=i;
}
print("%d\n",p);

阅读全文

与用java计算n的阶乘相关的资料

热点内容
彩视制作教程 浏览:766
圣墟在哪个App看免费 浏览:395
网络哪些不能玩 浏览:868
probe315使用教程 浏览:646
数字电位器程序 浏览:198
c代码整理 浏览:104
网络营销具有什么优势 浏览:378
右下角网络连接不显示宽带连接 浏览:940
ps修改tif文件 浏览:580
预防医学如何转行做大数据 浏览:234
pdf文件变蓝 浏览:309
怎么在pdf文件上面用k宝签名 浏览:213
如何知道表格里数据后面有空格 浏览:720
gee引擎更新系统找不到指定文件 浏览:802
贝壳网的数据删除了如何找回 浏览:509
华为荣耀6x怎么切换网络 浏览:418
手机里的pdf文件在哪放 浏览:889
java版贪吃蛇毕业论文 浏览:989
微信公共号邮箱 浏览:415
图片宽度代码 浏览:460

友情链接