導航:首頁 > 編程語言 > 用java計算n的階乘和

用java計算n的階乘和

發布時間:2023-05-16 15:59:26

Ⅰ 在java中,用遞歸方法計算n的階乘。

用Java求鍵盤輸入的數的階乘n。(遞歸演算法)packagejiecheng; importjava.util.*; //導入java.util包中的所有類{ 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程序設計求1-100的階乘和

親,java的界面不太受歡迎哦~~大概按你要求做了,看看吧~~

importjava.awt.BorderLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjavax.swing.JButton;

importjavax.swing.JEditorPane;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JPanel;

importjavax.swing.JTextArea;

publicclassyoyoextendsJFrame{

publicstaticvoidmain(String[]args){

yoyoyo=newyoyo();

yo.show();

}

publicyoyo(){

setDefaultCloseOperation(EXIT_ON_CLOSE);//設置退出時結束程序

setTitle("計算階層和");

setSize(400,250);

setLocation(100,100);//坐標

//把控制項實例化

finalJEditorPaneedit=newJEditorPane();

finalJButtonbutton=newJButton("計算和");

finalJTextAreaarea=newJTextArea(null,"",8,18);

JPanelmyPanel1=newJPanel();//這個是第一行的布局

myPanel1.add(newJLabel("請輸入整數n:"),BorderLayout.WEST);

myPanel1.add(edit,BorderLayout.CENTER);

myPanel1.add(button,BorderLayout.EAST);

JPanelmyPanel2=newJPanel();//這個是第二行的布局

myPanel2.add(newJLabel("1至n的階乘和是:"),BorderLayout.WEST);

myPanel2.add(area);

//把上面的布局加入畫布中

this.add(myPanel1,BorderLayout.NORTH);

this.add(myPanel2,BorderLayout.CENTER);

//上面已經把界面做出來了,接下來監聽按鈕

button.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEventarg0){

intn=Integer.valueOf(edit.getText());//得到edit里的值n

intresult=0;

for(inti=1;i<=n;i++){

inta=1;

for(intj=1;j<=i;j++){

a*=j;

}

result+=a;

}

area.setText(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求1到30 的階層和 用方法

階乘的公式是
n!=n*(n-1)*(n-2)....*2*1
這個公式可以通過一個java的循環來實現,也就是第一種方法。

for(int i=number; i>0;i--)
這個循環在i=0的時候結束, 而階乘的結果通過result*=i來計算。
public static int compute(int number)
{
int result=1;

for(int i=number;i>0;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;
}

Ⅳ 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求1到N的階乘的和,N等於一百,初學JAVA,求程序代碼

對於一般的比如20以內的階乘 可以用int 但是你這個太大了
long都不夠 用double了 沒有限制輸出格野逗式 所以是科學計數的 而且用double小數點後會出現誤差 這腔顫個知道吧 文件名Sum.java 代碼如下:
package Sum;
public class Sum{
public static void main (String[] args) {
double sum=0,sumt,i,j;
for(i=1;i<=100;i++){
for(j=1,sumt=1;j<=i;j++){
sumt*=j;
}
sum+=sumt;
System.out.println(i+" "+sum+" "+sumt);
}
}
}

如果實在要求這么大的階乘 可以用數組方式解決
給你貼段代碼 以前網上某位寫的 忘記了 求階乘的
import java.util.Scanner;

public class nc030{

public static void main(String[] args) throws Exception {
int[] date = new int[100000];
date[1] = 1;
int weishu = 1; // 求出來的值的位數
System.out.println("------用數組解決大數問題---------");
System.out.println("求n!的值");
System.out.print("n=");
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= weishu; j++) {
date[j] = date[j] * i;
}
// 確保除最高位外的每位不大於9
for (int j = 1; j < weishu; j++) {
if (date[j] >= 10) {
date[j + 1] += date[j] / 10;
date[j] = date[j] % 10;
}
}
//確保最高位不大於伍脊敗9
while (date[weishu] >= 10) {
weishu++;
date[weishu] += date[weishu - 1] / 10;
date[weishu - 1] = date[weishu - 1] % 10;
}
}
System.out.print(n + "!= ");
for (int k = weishu; k >= 1; k--) {
System.out.print(date[k]);
}
System.out.println("");
}
}

啟發一下就好啦~

Ⅶ java語言求n的階乘

||

樓主,系統提示你少括弧,讓你插入一個括弧在結束塊,說的很明白啊

你在最後加個括弧就沒錯啦...

publicclassexample2{
staticlongcalcFactorial(intn){
longfactorial=1;
if(n<1||n>20){
System.out.println("輸入錯誤!");
}
for(inti=n;i>=1;i--){
factorial*=i;
}
System.out.println("請輸入不超過20的正整數n:");
for(inti=1;i<=n;i++){
System.out.printf("最後結果:%d",calcFactorial(n));
System.out.println();
returnfactorial;
}
publicstaticvoidmain(String[]args){}
}//<-這個是calcFactorial方法的結束括弧,你類example2的結束括弧呢?

另外你這個方法能否運行起來?主函數應該寫在class內,而不是calcFactorial方法內

Ⅷ 高分懸賞:java 語言編寫 1到N的階乘的和

給你寫一個簡單的空謹如下:
public class test{
public static void main(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);
}
}
這是一到十滲虧茄的階乘,用時將10換做成任何即可

Ⅸ 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的階乘

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

閱讀全文

與用java計算n的階乘和相關的資料

熱點內容
cad新文件能找回來嗎 瀏覽:951
導出手機qq文件到u盤 瀏覽:456
電腦如何打開ppt文件怎麼打開方式 瀏覽:782
魅族鎖定區文件夾 瀏覽:357
刻字cnc怎麼編程 瀏覽:182
學校的網路拓撲結構圖 瀏覽:784
收集100個pdf文件里關鍵詞 瀏覽:594
蘋果關閉4g網路設置 瀏覽:289
如何監測資料庫 瀏覽:967
拷貝過來的pdf文件 瀏覽:751
抖音小店的訪客數據怎麼看 瀏覽:670
怎麼把c語言編程的字元向下移動 瀏覽:786
sql刪除文件組代碼 瀏覽:978
安卓post請求多重json 瀏覽:776
微信消除數據怎麼恢復 瀏覽:918
小米刷機顯示系統找不到指定文件 瀏覽:528
蘋果手機小風扇圖app叫什麼 瀏覽:292
繁體中文輸入工具 瀏覽:916
pc桌面壁紙文件夾 瀏覽:473
微信怎麼添加群 瀏覽:781

友情鏈接