OJ刷题之旅(1)

简介: OJ刷题之旅(1)

题目


现在给你两种颜色的箩筐,需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。

输入


输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;

输出


输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。

样例输入


11 B A 5 @ W

样例输出


AAAAAAAAA  ABBBBBBBBBA ABAAAAAAABA ABABBBBBABA ABABAAABABA ABABABABABA ABABAAABABA ABABBBBBABA ABAAAAAAABA ABBBBBBBBBA  AAAAAAAAA

@@@ @WWW@ @W@W@ @WWW@ @@@


以下是一个满足要求的C语言程序:

#include <stdio.h>
#include <string.h>
int main() {
int n; char c1, c2;
while (scanf("%d %c %c", &n, &c1, &c2) == 3) {
char basket[n][n];
memset(basket, c2, sizeof(basket)); // fill the entire basket with outer color
    for (int i = 0; i &lt; (n+1)/2; i++) { // build each layer of the basket
        char layer_c = (i % 2 == 0) ? c1 : c2; // determine center or outer color for this layer
        int layer_size = n - 2 * i;
        int start = i;
        int end = n - 1 - i;
        // fill top and bottom rows of the layer with outer color
        for (int j = start; j &lt;= end; j++) {
            basket[start][j] = c2;
            basket[end][j] = c2;
        }
        // fill left and right columns of the layer with outer color
        for (int j = start+1; j &lt; end; j++) {
            basket[j][start] = c2;
            basket[j][end] = c2;
        }
        // fill the center of the layer with center color
        for (int j = start+1; j &lt; end; j += 2) {
            for (int k = start+1; k &lt; end; k += 2) {
                basket[j][k] = layer_c;
            }
        }
    }
    // print the basket
    for (int i = 0; i &lt; n; i++) {
        for (int j = 0; j &lt; n; j++) {
            printf("%c", basket[i][j]);
        }
        printf("\n");
    }
    printf("\n");
}
return 0;
}

该程序的思路是构建一个二维字符数组,用于表示篮筐的图案。首先将整个篮筐填充为外部颜色,然后逐层填充中心和外部颜色的格子,最后输出整个篮筐的图案。

目录
相关文章
|
1月前
|
算法 容器
OJ刷题日记:2、双指针(2)
OJ刷题日记:2、双指针(2)
18 0
|
1月前
leetcode541刷题打卡
leetcode541刷题打卡
19 0
|
2天前
|
容器
【LeetCode刷题】栈和队列题目练习~
【LeetCode刷题】栈和队列题目练习~
|
1月前
|
算法 测试技术
OJ刷题日记:1、双指针(1)
OJ刷题日记:1、双指针(1)
22 0
|
1月前
刷题之Leetcode283题(超级详细)
刷题之Leetcode283题(超级详细)
9 0
|
1月前
|
索引
leetcode151刷题打卡
leetcode151刷题打卡
20 0
|
1月前
|
索引
leetcode18刷题打卡
leetcode18刷题打卡
20 0
|
存储 C语言
OJ刷题之旅(4)
OJ刷题之旅(4)
35 0
|
安全 数据安全/隐私保护 C语言
OJ刷题之旅 (2)
OJ刷题之旅 (2)
72 0

热门文章

最新文章