1. 程式人生 > >黑馬程式設計師——階乘的兩種實現方法及水仙花數的列印

黑馬程式設計師——階乘的兩種實現方法及水仙花數的列印

------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! -------

需求:分別使用迴圈和遞迴列印5的階乘

/*
 * 兩種方式實現求5的階乘
 * 1.迴圈
 * 2.遞迴
 */
public class Factorial5 {
	public static void main(String[] args) {
		System.out.println(factorialM1(5));
		System.out.println(factorialM2(5));
	}

	// 寫一個使用迴圈求n的階乘的方法
	public static int factorialM1(int n) {
		int y = 1;
		for (int x = 1; x <= n; x++) {
			y *= x;
		}
		return y;
	}

	// 寫一個使用遞迴求n的階乘的方法
	/*
	 * 分析: 
	 * 	如果n==1,return n;
	 * 	如果n!=1,return n*jc(n-1)
	 */
	public static int factorialM2(int n) {
		if(n==1){
			return n;
		}else{
			return  n*factorialM2(n-1);
		}
	}
}
列印水仙花數:指一個三位數,其各位數字的立方和等於該數本身。
/*
 * 列印水仙花數
 * 所謂的水仙花數是指一個三位數,其各位數字的立方和等於該數本身。
 * 分析:
 * 	3位數指明瞭範圍是100-999,可以使用for來限定範圍
 * 	分別獲取各位上的數,判斷該數是不是水仙花數,如果是則列印
 * 		獲取個位數:n%10
 * 		獲取十位數:n/10%10
 * 		獲取百位數:n/100%10
 * 	
 */
public class PrintDaffodil {

	public static void main(String[] args) {
		for(int x=100;x<1000;x++){
			int ge = x%10;
			int shi = x/10%10;
			int bai = x/100%10;
			if(ge*ge*ge+shi*shi*shi+bai*bai*bai==x){
				System.out.println(x);
			}
		}
	}
}


相關推薦

黑馬程式設計師——實現方法水仙花列印

------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! ------- 需求:分別使用迴圈和遞迴列印5的階乘 /* * 兩種方式實現求5的階乘 * 1.迴圈 *

微信小程式下拉載入和上拉重新整理實現方法

方法一:onPullDownRefresh和onReachBottom方法實現小程式下拉載入和上拉重新整理 首先要在json檔案裡設定window屬性             屬性  

微信小程式模板訊息的實現方式

最近在做微信小程式,為了讓使用者能更加方便的獲取到小程式內部的通知,便想著用模板訊息來解決此類問題。首先介紹一下兩種方法 第一種是傳統的按照微信開發文件來實現模板訊息的獲取,首先要明確的是你要有一個第三方的伺服器,因為微信現在規定在小程式內部不能直接請求微信的伺服器,而是要

android縮放動畫的實現方法

get odi omx rac tor Coding eight rpo odin 在android開發。我們會常常使用到縮放動畫,普通情況下縮放動畫有兩種實現方式。一種是直接通過java代碼去實現,第二種是通過配置文件實現動畫,以下是兩種動畫的基本是用法: Ja

a超鏈接之返回頂部的實現方法

html name remove 分享圖片 pla 位置 rem src position 1.通過css實現: 為頁面頂部如body或者自己設置的盒子等加上唯一id屬性 <body id="id"> .... <a href="#id">返回頂部

快速排序的實現方法(js)

while 交換 splice rt+ dex 進行 return ont mat 快速排序的基本思想:通過一趟排序,將待排記錄分割成獨立的兩部分,其中一部分記錄的關鍵字均比另外一部分記錄的關鍵字小,則可分別對著兩部分記錄繼續進行排序,以達到整個序列有序的目的。------

執行緒有實現方法的具體區別

Java中有兩種實現多執行緒的方式。一是直接繼承Thread類,二是實現Runnable介面。那麼這兩種實現多執行緒的方式在應用上有什麼區別呢? 第一種方式:使用Runnable介面建立執行緒第二種方式:直接繼承Thread類建立物件使用Runnable介面建立執行緒1.可

最短路徑Dijkstra的實現方法

1、Dijkstra單源最短路,鄰接矩陣形式(權值是非負)/* 單源最短路徑,Dijkstra演算法,鄰接矩陣形式,複雜度為O(n^2) 求出源beg到所有點的最短路徑,傳入圖的頂點數,和鄰接矩陣cost[][] 返回個點的最短路徑dist[],路徑pre[].pre[

單例模式的實現方式區別

 1:類載入時進行物件的例項化: public class SingletonA {   //SingletonA的唯一例項 private static SingletonA instance = new SingletonA();  //將建構函式私有,防止外界構造Sin

關於把一個無符號的二進位制位翻轉的實現方法

#include <stdlib.h> #include <stdio.h> #include <math.h> unsigned int reserve_bit(u

Java動態代理的實現方法

AOP的攔截功能是由java中的動態代理來實現的。說白了,就是在目標類的基礎上增加切面邏輯,生成增強的目標類(該切面邏輯或者在目標類函式執行之前,或者目標類函式執行之後,或者在目標類函式丟擲異常時候執行。不同的切入時機對應不同的Interceptor的種類,如BeforeAd

PHP查詢資料庫中滿足條件的記錄條(實現方法)

第一種方法:查詢時候直接統計  複製程式碼 程式碼如下: $sql="SELECT COUNT(*) AS count FROM TABLE WHERE id='$id'";  $result=mysql_fetch_array(mysql_query($sql));  $count=$result['cou

計時器的 time_t 和 clock_t 實現方法

        想給自己初步完成的相空間搜尋演算法計算一下執行時間,於是嘗試瞭如下使用 time_t 型別的方式 #include <stdlib.h> #include <iostream> #include <time.h> #inc

java面試題:java中的單例設計模式實現方法的程式碼舉例

java面試時經常會問到關於單例設計模式,因為它能考察的知識點較多且在開發中經常用到。那我就來說一說我對於單例設計模式的一些淺見。首先,在Java中,什麼是單例呢?就是保證類在記憶體中只有一個物件。那麼

linux fork() 程序樹的實現方法

Linux fork()程序樹的兩種實現方法 剛完成作業系統的實驗一,其中附加題是使用fork()實現一顆滿二叉樹形態的程序樹,覺得好玩,做完之後就記錄一下。 1. 暴力的做法 最簡單粗暴的做法,當然就是直接把層數寫死啦。例如要建立三層的程序樹,就

Android 文字自動滾動(跑馬燈)效果的實現方法[特別好使]

    public AutoScrollTextView(Context context, AttributeSet attrs, int defStyle) {         super(context, attrs, defStyle);         initView();     }      

判斷機器大小端的實現方法

大端模式(Big-endian): 是指資料的低位(就是權值較小的後面那幾位)儲存在記憶體的高地址中,而資料的高位,儲存在記憶體的低地址 中,這樣的儲存模式有點兒類似於把資料當作字串順序處理:地址由小

Android 文字自動滾動(跑馬燈)效果的實現方法

    public AutoScrollTextView(Context context, AttributeSet attrs, int defStyle) {         super(context, attrs, defStyle);         initView();     }      

C++類物件共享資料的實現方法

class sample { private:char *m_pArray;static int m_sCount; size_t m_size; public:sample(){ m_size = 20;m_pArray = new char[m_size];memset(m_pArray, 0, m_si

Java判斷單鏈表是否有環的實現方法

http://blog.jobbole.com/106227/ 方法一:首先從頭節點開始,依次遍歷單鏈表的每一個節點。每遍歷到一個新節點,就從頭節點重新遍歷新節點之前的所有節點,用新節點ID和此節點之前所有節點ID依次作比較。如果發現新節點之前的所有節點當中存