time limit: 1 secs, memory limit: 32 mb
在電腦科學上,有很多類問題是無法解決的,我們稱之為不可解決問題。然而,在很多情況我們並不知道哪一類問題可以解決,那一類問題不可解決。現在我們就有這樣乙個問題,問題如下:
1. 輸入乙個正整數n;
2. 把n顯示出來;
3. 如果n=1則結束;
4. 如果n是奇數則n變為3n+1 ,否則n變為n/2;
5. 轉入第2步。
例如對於輸入的正整數22,應該有如下數列被顯示出來:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
我們推測:對於任意乙個正整數,經過以上演算法最終會推到1。儘管這個演算法很簡單,但我們仍然無法確定我們的推斷是否正確。不過好在我們有計算機,我們驗證了對於小於1,000,000的正整數都滿足以上推斷。
對於給定的正整數n,我們把顯示出來的數的個數定義為n的鏈長,例如22的鏈長為16。
你的任務是編寫乙個程式,對於任意一對正整數i和j,給出i、j之間的最長鏈長,當然這個最長鏈長是由i、j之間的其中乙個正整數產生的。我們這裡的i、j之間即包括i也包括j。
輸入檔案只有一行,即為正整數i和j,i和j之間以乙個空格隔開。0 < i ≤ j < 10,000。
檔案只能有一行,即為i、j之間的最長鏈長。
1 10
20
理解清楚題意就知道其實是很簡單的求最大值問題,**如下:
#include using namespace std;
int main()
if(max
submit
3n 1 數鏈問題
在電腦科學上,有很多類問題是無法解決的,我們稱之為不可解決問題。然而,在很多情況下我們並不知道哪一類問題可以解決,哪一類問題不可以解決。現在我們就有乙個問題,問題如下 1 輸入乙個正整數n 2 把n顯示出來 3 如果n 1則結束 4 如果 n是奇數則n變為 3 n 1,否則n變為 n 2 5 轉入第...
java實現n個小孩圍圈數m退1問題(單鏈
n個人圍一圈報數,數到m的人退出,直到最後只剩乙個人。n個人圍一圈報數,數到m的人退出,直到最後只剩乙個人 public class countquit public static void main string args public static void startgrame start s...
南陽題目96 n 1位數
時間限制 3000 ms 記憶體限制 65535 kb 難度 1 描述 已知w是乙個大於10但不大於1000000的無符號整數,若w是n n 2 位的整數,則求出w的後n 1位的數。輸入 第一行為m,表示測試資料組數。接下來m行,每行包含乙個測試資料。輸出輸出m行,每行為對應行的n 1位數 忽略字首...