×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
#54025: C++參考解
williamchen960620@gmail.com
(William chen)
學校:
不指定學校
編號:
328246
×
傳送站內訊息
傳給:
主題:
內容:
來源:
[]
註冊時間:
2025-11-08 16:52:19
最後登入時間:
2025-11-08 16:52:19
c039.
00100 - The 3n + 1 problem
--
UVa
100
| From: [140.138.224.87] | 發表日期: 2025-11-08 17:03
#include<iostream>
#include<cstdlib>
using namespace std;
int A[1000000] = { 0 };
int main() {
int m, n,max=0;
int c, d;
int b = 0;
int fun(int);
while (cin >> m >> n) {
if (m == 0 and n == 0)
break;
c = m;
d = n;
if (m > n) {
swap(m, n);
}
for (int i = m; i <= n; i++) {
b = fun(i);
if (b > max)
max = b;
}
cout << c <<" "<<d<<" "<< max << endl;
max = 0;
}
return 0;
}
int fun(int a) {
int b=0;
while (a != 1) {
if (a % 2 == 0)
{
a = a / 2;
A[b] = a;
b++;
continue;
}
if (a % 2 == 1) {
a = a * 3 + 1;
A[b] = a;
b++;
continue;
}
}
return b+1;
}
把中間部分獨立出來用函式可能會比較好看(?