int num=1;
成都創(chuàng)新互聯(lián)是少有的成都做網(wǎng)站、網(wǎng)站制作、營(yíng)銷型企業(yè)網(wǎng)站、微信小程序定制開發(fā)、手機(jī)APP,開發(fā)、制作、設(shè)計(jì)、外鏈、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,自2013年起,堅(jiān)持透明化,價(jià)格低,無套路經(jīng)營(yíng)理念。讓網(wǎng)頁驚喜每一位訪客多年來深受用戶好評(píng)
Scanner sc=new Scanner(system.in);
system.out.print("輸入一個(gè)正整數(shù)");
int n=sc.nextInt();
String str=num+"*";
for( int i=2;i=n;i++){
str=str+i+"*";
if(i==n){
str=str+i;
}
num=num*i;//num*=i;這一步有兩種實(shí)現(xiàn),但是后面的運(yùn)行速度比前面的要快!
}
system.out.println(str+"="+num);
效果是,你輸入5:顯示1*2*3*4*5=120
你好,下面我給出算法思想及其實(shí)現(xiàn):
public class Divide {
/*
* 首先我們要理解計(jì)算機(jī)是怎么做除法的,計(jì)算機(jī)只能進(jìn)行加法和加法運(yùn)算
* 所以我們用減法去模擬除法運(yùn)算
* 這里為了簡(jiǎn)單,只演示整數(shù)的相除運(yùn)算
* 浮點(diǎn)數(shù)預(yù)算同理,就是控制精度問題
*/
/*
* param a 被除數(shù)
* param b 除數(shù)
* 返回值 商
*/
public static int divide(int a, int b){
if(a0 || b0){
throw new ArithmeticException("參數(shù)必須為非負(fù)整數(shù)") ;
}
if(b == 0){
throw new ArithmeticException("除數(shù)不能為0") ;
}
a -= b ;
if(a = b){ //這里就是控制精度,整數(shù)的比較簡(jiǎn)單
return divide(a,b) ; //遞歸調(diào)用
}
return a;
}
public static void main(String[] args) {
System.out.print("13 / 5 = " + divide(13,2) );
}
}
不知道lz在factory(int i)方法里面定義一個(gè)x=0是到底要鬧哪樣。明明是要根據(jù)傳來的參數(shù)進(jìn)行迭代判斷。改了一下,希望對(duì)你有用(下次添加代碼的時(shí)候要注意整潔,不然會(huì)干擾回答的~)。
import java.util.Scanner;
public class factorial_2 {
public static void main(String[] args) {
System.out.print("請(qǐng)輸入一個(gè)整數(shù):");
Scanner n1 = new Scanner(System.in);
int n = n1.nextInt();
System.out.println();
System.out.print(n + "的階乘為:");
int sum = factorial(n);
System.out.print(sum);
}
private static int factorial(int i) {
//int x = 0;
if ( i == 1) {
return 1;
} else {
int temp;
temp = (int) i * factorial(i - 1);
return temp;
}
}
}
提醒樓主注意的是要注意int范圍的問題。因?yàn)樽詈蠼邮战Y(jié)果的是一個(gè)int sum類型的值,所以它可以解決的階乘數(shù)也是有范圍的。有必要的話可以改成Integer.
本文題目:java迭代算法代碼 java迭代器的使用方法
本文鏈接:http://bm7419.com/article16/ddephdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、建站公司、網(wǎng)站建設(shè)、服務(wù)器托管、小程序開發(fā)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)