回分類題庫
d284: 105OOP Lab Exercise: Pass arguments to function
出處:

Difficulity : 1
Accepted : 65 Times | Submit :281 Times | Clicks : 1123
Accepted : 59 Users | Submit : 60 Users | Accepted rate : 98%
Time Limit :10000 ms | Memory Limit : 64000 KBytes
題目加入時間 : 2016-09-20 23:31

Content :

3n+1 Problem,考慮以下的演算法:

  1. 輸入 n
  2. 印出 n
  3. 如果 n = 1 結束
  4. 如果 n 是奇數 那麼 n=3*n+1
  5. 否則 n=n/2
  6. GOTO 2

例如輸入 22, 得到的數列: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

給一個輸入n,透過以上的演算法我們可以得到一個數列(1作為結尾)。此數列的長度稱為n的cycle-length。上面提到的例子,22的cycle length為16。 
 
 
請完成以下參考程式碼。
================================ 
#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

void func_one ( /* TODO */ num) {
    cout << num << "_"; // second step in that algorithm
    
    /* TODO */

    cout << num << "_"; // print "1_"
}

void func_rev ( /* TODO */ num) {
    cout << num << "_"; // second step in that algorithm

    /* TODO */

    cout << num << "_"; // print reversely
}

int main() {

    /* TODO */

    return 0;
}


Input :

每行包含不等數量的底線及一個數字,需運用該數字算出3n+1演算法之序列。

每行皆需產生三行結果。

 

直至讀到"read"時,程式結束。

Output :

每行input需印出三行output,前兩行輸出皆包含(cycle length*2 - 1)個數字及底線。

第一行:該數字利用3n+1演算法運算,並倒回印出(1不必重複印)。

第二行:該數字利用3n+1演算法運算,並在第一行倒回印出之處全部印1代替。

第三行:空行。 

Sample Input :

_____22_
__19_________
32____
10
__24
read

Sample Output :

22_11_34_17_52_26_13_40_20_10_5_16_8_4_2_1_2_4_8_16_5_10_20_40_13_26_52_17_34_11_22_
22_11_34_17_52_26_13_40_20_10_5_16_8_4_2_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_

19_58_29_88_44_22_11_34_17_52_26_13_40_20_10_5_16_8_4_2_1_2_4_8_16_5_10_20_40_13_26_52_17_34_11_22_44_88_29_58_19_
19_58_29_88_44_22_11_34_17_52_26_13_40_20_10_5_16_8_4_2_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_

32_16_8_4_2_1_2_4_8_16_32_
32_16_8_4_2_1_1_1_1_1_1_

10_5_16_8_4_2_1_2_4_8_16_5_10_
10_5_16_8_4_2_1_1_1_1_1_1_1_

24_12_6_3_10_5_16_8_4_2_1_2_4_8_16_5_10_3_6_12_24_
24_12_6_3_10_5_16_8_4_2_1_1_1_1_1_1_1_1_1_1_1_

Hint :

1. include cstdlib to use atoi() function. NOTICE: you should change its type to use atoi().
2. You may design two similar functions to help you to output two different lines.

Author :

(管理員:oopTA)

  Solve it!   Status Forum (0)

C++
C
JAVA
73562. oop104703006 (4 ms , 422KB)
74030. oop104703020 (6 ms , 422KB)
73971. y860318 (6 ms , 380KB)
73958. oop104703021 (6 ms , 364KB)
73922. oop104703007 (6 ms , 444KB)
沒有解題記錄 74734. nwgs524513cja (104 ms , 220KB)

執行時間會受很多因素影響因此僅供參考,主機等級請看這裡