2026年【江苏“信息与未来”编程思维】真题及题解(T3:南京名片)
2026/6/25 21:35:00 网站建设 项目流程

2026年【江苏“信息与未来”编程思维】真题及题解(T3:南京名片)

题目描述

Dr. X 要给南京展会设计巨幅广告,图案由两个大写字母 N、J 组成。给定一个正整数n nn,表示字母的大小。你需要按照以下规则输出这两个字母,并且两个字母之间恰好用一个空格隔开

  • 字母 N 由一个n × n n \times nn×n的方阵组成。第一列和最后一列需要涂黑,并且从左上角到右下角的主对角线也要涂黑。
  • 字母 J 由一个n × n n \times nn×n的方阵组成。第一行需要涂黑,中间那一列(即第⌊ n / 2 ⌋ + 1 \lfloor n/2 \rfloor + 1n/2+1列)从第一行到最后一行也涂黑,最后一行从第一列到中间列也涂黑。
  • 涂黑的位置用星号*表示,其余位置为空格,注意不是数值为0 00的 ASCII 字符。行末的空格不影响评分。
输入格式

输入一个正整数n nn

输出格式

输出n nn行,每行包含两个由单个空格隔开的字母图案。

输入输出样例 1
输入 1
5
输出 1
* * ***** ** * * * * * * * ** * * * ***
输入输出样例 2
输入 2
3
输出 2
* * *** *** * * * **
说明/提示
  • n = 5 n = 5n=5时,需要分别构造大小为5 × 5 5 \times 55×5的字母 N、J,并按顺序输出,且相邻字母之间恰好保留一个空格。
  • n = 3 n = 3n=3时,字母规模最小,更容易看出 N 的主对角线、J 的中间列和底边。
数据规模
  • 对于60 % 60\%60%的数据,满足n ≤ 10 n \le 10n10
  • 对于100 % 100\%100%的数据,满足3 ≤ n ≤ 50 3 \le n \le 503n50,且保证n nn为奇数。

思路分析

  1. 两个字母都画在n × n n\times nn×n的方阵上,所以每一行可以先画出字母 N 的 n 个字符,再输出一个空格,再画出字母 J 的 n 个字符。
  2. 使用 0 开始的下标:
    • 字母 N:
      • 第 0 列:j == 0
      • 最后一列:j == n-1
      • 主对角线:i == j
        满足上述任一条件就是*,否则是空格。
    • 字母 J:
      • 第一行:i == 0
      • 中间列:中间列是第n/2+1列,0-based 下标为n/2
      • 最后一行从第 0 列到中间列:i == n-1 && j <= n/2
        满足任一条件就是*,否则是空格。
  3. 每行把 N 串、一个空格、J 串拼接后输出即可。

代码实现

#include<bits/stdc++.h>usingnamespacestd;intn;intmain(){cin>>n;intm=n/2+1;//中间列for(inti=0;i<n;i++){string a,b;a.resize(n);b.resize(n);for(intj=0;j<n;j++){//N:边界/主对角线if(j==0||j==n-1||i==j)a[j]='*';elsea[j]=' ';//J:顶行/中间列/底行左半if(i==0||j==m-1||(i==n-1&&j<=m-1))b[j]='*';elseb[j]=' ';}string s=a+" "+b;cout<<s<<'\n';}return0;}

功能分析

  • 输入正整数 n,计算出字母 J 的中间列位置。
  • 对每一行,分别生成字母 N 和字母 J 的当前行字符串。
  • 用单个空格连接两个字母的当前行,并去掉行末多余空格后输出。
  • 时间复杂度O ( n 2 ) O(n^2)O(n2),空间复杂度 O(n)。

更多内容请关注专栏:信奥赛C++普及组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转


【秘籍汇总】(完整csp信奥赛C++学习资料):

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.csdn.net/lecturer/7901 点击跳转

2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

https://edu.csdn.net/course/detail/41081 点击跳转

3、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转

4、csp信奥赛冲刺一等奖有效刷题题解:

信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

信奥赛C++普及组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转

5、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询