50道java演算法題(一)

2021-09-07 22:14:04 字數 1420 閱讀 9673

【程式1】 

題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? 

1.程式分析:   兔子的規律為數列1,1,2,3,5,8,13,21....

f(n)=f(n-2)+f(n-1) 使用遞迴

public

static

int fib(int

n)

else

【程式2】 

題目:判斷101-200之間有多少個素數,並輸出所有素數。 

1.程式分析:判斷素數的方法:用乙個數分別去除2到sqrt(這個數),如果能被整除, 

則表明此數不是素數,反之是素數。 

public

static

boolean fn(int

n)

}return

prime;

}public

static

void

main(string args)

}}

【程式3】 

題目:列印出所有的 "水仙花數 ",所謂 "水仙花數 "是指乙個三位數,其各位數字立方和等於該數本身。例如:153是乙個 "水仙花數 ",因為153=1的三次方+5的三次方+3的三次方。 

程式分析:利用

for迴圈控制

100-999

個數,每個數分解出個位,十位,百位。

for(int i=100;i<=999;i++)

}

【程式4】

字串反轉

題目:程式設計序將乙個字串反轉。

輸入任意字串,比如abcd轉換成dcba

public

static

string reverse(string str)

str=new string(mystr); //

字串轉陣列

return

str;

}

【程式5】

題目:有乙個字串,其中包含中文字元、英文本元和數字字元,請統計和列印出各個字元的個數。

public

static

void

numberofchar(string str)

if( character.isdigit(mystr[count]))

else

if(character.isletter(mystr[count]))

}system.out.println("number is " +nuberic +"\nletter is "+letter+"\nchinese letter"+chinese_character);

}

50道演算法題(1 50)

題目 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 ...

50道演算法題(2 50)

給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0示例 2 nums1 1,2 n...

50道演算法題(5 50)

請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字...