//同题目1338 2247 2545为同一类型的题目! #include <iostream> #include <algorithm> #include <memory.h> using namespace std; long ans[10000010];//最开始的时候,类型为long long,结果MLE了! int main() { int i, n2, n3; ans[1] = 1; n2 = 1; n3 = 1; for (i = 2; i <= 10000000; i++) { ans[i] = min(ans[n2]*2+1, ans[n3]*3+1); if (ans[i] == ans[n2]*2+1) n2++; if (ans[i] == ans[n3]*3+1) n3++; } int num; while (cin >> num) cout << ans[num] << endl; system("pause"); }