首页 > 代码库 > HDU-1032
HDU-1032
/********************************************************************@file Main_practise.cpp@date 2014-8-29@author Tiger@brief The 3n + 1 problem********************************************************************/#include <cstdio>#include <algorithm>const int SIZE = 1000000;__int64 Records[SIZE];void Cal3NPlus1(void);int main(int argc, const char* argv[]){ Cal3NPlus1(); int nA = 0, nB = 0; while (scanf("%d%d", &nA, &nB) != EOF) { int nMax = std::max(nA, nB); int nMin = std::min(nA, nB); __int64 nSum = 0; for (int i=nMin; i<=nMax; ++i) { nSum < Records[i] ? nSum = Records[i] : nSum; } printf("%d %d %d\n", nA, nB, nSum); } return 0;}void Cal3NPlus1(void){ for (__int64 i=1; i<SIZE; ++i) { __int64 j = i, nCnt = 0; while (j != 1) { if ((j & 1) == 1) { j = 3*j + 1; } else { j /= 2; } ++nCnt; } Records[i] = ++nCnt; }}
HDU-1032
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。