solution.md 4.2 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1
# 打印图形
F
fix bug  
feilong 已提交
2

每日一练社区's avatar
每日一练社区 已提交
3
小明在X星球的城堡中发现了如下图形和文字:
每日一练社区's avatar
每日一练社区 已提交
4

每日一练社区's avatar
每日一练社区 已提交
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
```
rank=3
   * 
  * * 
 *   *  
* * * *
rank=5
               *                                                      
              * *                                                     
             *   *                                                    
            * * * *                                                   
           *       *                                                  
          * *     * *                                                 
         *   *   *   *                                                
        * * * * * * * *                                               
       *               *                                              
      * *             * *                                             
     *   *           *   *                                            
    * * * *         * * * *                                           
   *       *       *       *  
  * *     * *     * *     * *  
 *   *   *   *   *   *   *   * 
* * * * * * * * * * * * * * * *  
ran=6
                               *                                      
                              * *                                     
                             *   *                                    
                            * * * *                                   
                           *       *                                  
                          * *     * *                                 
                         *   *   *   *                                
                        * * * * * * * *                               
                       *               *                              
                      * *             * *                             
                     *   *           *   *                            
                    * * * *         * * * *                           
                   *       *       *       *                          
                  * *     * *     * *     * *                         
                 *   *   *   *   *   *   *   *                        
                * * * * * * * * * * * * * * * *                       
               *                               *                      
              * *                             * *                     
             *   *                           *   *                    
            * * * *                         * * * *                   
           *       *                       *       *                  
          * *     * *                     * *     * *                 
         *   *   *   *                   *   *   *   *                
        * * * * * * * *                 * * * * * * * *               
       *               *               *               *              
      * *             * *             * *             * *             
     *   *           *   *           *   *           *   *            
    * * * *         * * * *         * * * *         * * * *           
   *       *       *       *       *       *       *       *          
  * *     * *     * *     * *     * *     * *     * *     * *         
 *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *        
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *     
```  
每日一练社区's avatar
每日一练社区 已提交
62

每日一练社区's avatar
每日一练社区 已提交
63
请你补全程序,实现该图形的打印。
F
fix bug  
feilong 已提交
64

每日一练社区's avatar
每日一练社区 已提交
65
```c
每日一练社区's avatar
每日一练社区 已提交
66 67
#include <bits/stdc++.h>
using namespace std;
每日一练社区's avatar
每日一练社区 已提交
68 69

#define N 70
F
fix bug  
feilong 已提交
70

每日一练社区's avatar
每日一练社区 已提交
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
void f(char a[][N], int rank, int row, int col)
{
    if (rank == 1)
    {
        a[row][col] = '*';
        return;
    }

    int w = 1;
    int i;
    for (i = 0; i < rank - 1; i++)
        w *= 2;
    __________________
    f(a, rank - 1, row + w / 2, col);
    f(a, rank - 1, row + w / 2, col + w);
}

每日一练社区's avatar
每日一练社区 已提交
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
int main()
{
    char a[N][N];
    int i, j;
    for (i = 0; i < N; i++)
        for (j = 0; j < N; j++)
            a[i][j] = ' ';

    f(a, 4, 0, 0);
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < N; j++)
            printf("%c", a[i][j]);
        printf("\n");
    }

    return 0;
}
每日一练社区's avatar
每日一练社区 已提交
106 107
```

每日一练社区's avatar
每日一练社区 已提交
108 109

## 答案
F
fix bug  
feilong 已提交
110

每日一练社区's avatar
每日一练社区 已提交
111
```c
每日一练社区's avatar
每日一练社区 已提交
112
f(a, rank - 1, row, col + w / 2);
每日一练社区's avatar
每日一练社区 已提交
113 114 115
```
## 选项

F
fix bug  
feilong 已提交
116

每日一练社区's avatar
每日一练社区 已提交
117
### A
F
fix bug  
feilong 已提交
118

每日一练社区's avatar
每日一练社区 已提交
119
```c
每日一练社区's avatar
每日一练社区 已提交
120
f(a, rank, row, col + w / 2);
每日一练社区's avatar
每日一练社区 已提交
121 122 123
```

### B
F
fix bug  
feilong 已提交
124

每日一练社区's avatar
每日一练社区 已提交
125
```c
每日一练社区's avatar
每日一练社区 已提交
126
f(a, rank - 1, row, col + w);
每日一练社区's avatar
每日一练社区 已提交
127 128 129
```

### C
F
fix bug  
feilong 已提交
130

每日一练社区's avatar
每日一练社区 已提交
131
```c
每日一练社区's avatar
每日一练社区 已提交
132
f(a, rank + 1, row, col + w / 2);
每日一练社区's avatar
每日一练社区 已提交
133
```