【HDU 1032】The 3n + 1 problem

The 3n + 1 problem(題目鏈接)

思路

  • 思路比較簡單,遞歸加存儲

    • 網(wǎng)上有人說孩哑,不用存儲也能過(沒有試)
    • 但是需要注意n的范圍栓霜,否則數(shù)組會越界
    • 因為3*n+1的結果可能比3000000還要大(最開始一直沒有想通)
    • 所以超出1000000的數(shù),就不存儲
  • 輸入的i j不一定是從小到大

代碼

#include <iostream>
using namespace std;

//存儲n對應的循環(huán)長度 
int tab[1000000+10];

//返回n對應的循環(huán)長度 
int f(int n){
    if(n == 1)                      //當n為 1横蜒,遞歸出口 
        return 1;                   //循環(huán)長度為 1 
    int tmp;                        //計算出的臨時變量 
    if(n > 1000000 || tab[n] == 0){ //超出表的范圍或還沒有計算 
        if(n % 2 == 1){             //奇數(shù) 
            tmp = f(3*n + 1) + 1;   //循環(huán)長度加 1 
        }else{                      //偶數(shù) 
            tmp =  f(n / 2) + 1;    //循環(huán)長度也加 1 
        }
        if(n <= 1000000){           //在表的范圍內(nèi) 
            tab[n] = tmp;           //記錄在表中 
        }
        return tmp;                 //返回循環(huán)長度 
    }
    return tab[n];                  //已經(jīng)在表中時胳蛮,直接返回 
}

int main(){
    
    int i, j, t1, t2;               //
    while(cin >> t1 >> t2){         //t1 t2保存輸入順序 
        if(t1 > t2){                //交換t1 t2的位置 
            i = t2;                 //讓 i 小于 j 
            j = t1;
        }else{
            i = t1;
            j = t2;
        }
        int max = f(j);             //max先賦值為其中的一個值 
        for(int k = i; k < j; k++){ //循環(huán)整個范圍(j已經(jīng)賦值給max) 
            if(f(k) > max){          
                max = f(k);         //記錄最大值 
            }
        }
        cout << t1 << " " << t2 << " " << max << endl;
    }
    
    return 0;
}

總結

  • 讀題目不太認真,沒有看到輸出的順序跟輸入要一致
  • 默認i j從小到大
  • 使用數(shù)組時丛晌,沒有考慮到訪問越界的情況
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仅炊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子澎蛛,更是在濱河造成了極大的恐慌抚垄,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谋逻,死亡現(xiàn)場離奇詭異呆馁,居然都是意外死亡,警方通過查閱死者的電腦和手機毁兆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門浙滤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人气堕,你說我怎么就攤上這事纺腊。” “怎么了茎芭?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵揖膜,是天一觀的道長。 經(jīng)常有香客問我梅桩,道長壹粟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任宿百,我火速辦了婚禮煮寡,結果婚禮上,老公的妹妹穿的比我還像新娘犀呼。我一直安慰自己,他們只是感情好薇组,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布外臂。 她就那樣靜靜地躺著,像睡著了一般律胀。 火紅的嫁衣襯著肌膚如雪宋光。 梳的紋絲不亂的頭發(fā)上貌矿,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音罪佳,去河邊找鬼逛漫。 笑死,一個胖子當著我的面吹牛赘艳,可吹牛的內(nèi)容都是我干的酌毡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼蕾管,長吁一口氣:“原來是場噩夢啊……” “哼枷踏!你這毒婦竟也來了?” 一聲冷哼從身側響起掰曾,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤旭蠕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后旷坦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掏熬,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年秒梅,在試婚紗的時候發(fā)現(xiàn)自己被綠了旗芬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡番电,死狀恐怖岗屏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情漱办,我是刑警寧澤这刷,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站娩井,受9級特大地震影響暇屋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜洞辣,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一咐刨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扬霜,春花似錦定鸟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春沸久,著一層夾襖步出監(jiān)牢的瞬間季眷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工卷胯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留子刮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓窑睁,卻偏偏與公主長得像挺峡,于是被迫代替她去往敵國和親干厚。 傳聞我的和親對象是個殘疾皇子斑唬,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 各校歷年復試機試試題 清華添忘、北大吁伺、華科試題詳細筆記部分编检,少筆記部分與少數(shù)leetcode【含個人整理筆記】 一火本、詳...
    十里江城閱讀 1,187評論 0 1
  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,345評論 0 2
  • 一縷陽光 灑滿金色的沙灘 海水洶涌澎湃 摧毀了千年的水怪 一次次 沖刷著礁石的無奈 美麗的小城 在晨曦里 愈加忙碌...
    小蘋果的孤獨閱讀 223評論 0 0
  • 兒女在家與父母最好的溝通方式就是相互理解主籍,而相互理解最高的層次就是懂得“止語”讨彼。因為有些理真的是永遠都講不通鲤嫡,道不...
    dream561228閱讀 541評論 0 51
  • 東錢湖去寧波市區(qū)東南約30里送挑,環(huán)湖皆山,山巒起伏暖眼。其間八十一嶺薈萃惕耕,七十二溪奔流,眾水依勢蜿蜒匯聚成湖诫肠。據(jù)考證司澎,早...
    山海游客閱讀 1,099評論 1 3