『壹』 在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);