計算機概論|HW12

題目敘述

請實作一程式,此程式可以不斷地要求使用者輸入一整數N (1<=N<=9),直到所輸入的N值不在[1,9]範圍內時結束程式。請根據下面規則以及N值列印相關數字。

範例輸入

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
N=3  
32123  
22122  
11111  
22122  
32123  

N=5  
543212345  
443212344  
333212333  
222212222  
111111111  
222212222  
333212333  
443212344  
543212345  

N=7  
7654321234567  
6654321234566  
5554321234555  
4444321234444  
3333321233333  
2222221222222  
1111111111111  
2222221222222  
3333321233333  
4444321234444  
5554321234555  
6654321234566  
7654321234567  

答題思路

計算index,尋找規律

參考答案

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    int n ;
    
    while(cin >> n and n > 0) {
        for(int i=0; i < 2*n-1; i++) {
            int idx = i;
            
            if(i < n)
                idx -= (i-n+1)*2;
            
            for(int j=0; j < 2*n-1; j++) {
                int jdx = j;
                if(j < n)
                    jdx -= (j-n+1)*2;
                
                printf("%d", min(idx, jdx)-n+2);
            }
            printf("\n");
        }
    }

    return 0;
}
最後更新 Nov 30, 2022 13:05 +0800