【GESP真题解析】第 17 集 GESP 三级 2024 年 12 月编程题 2:打印数字
大家好,我是莫小特。
这篇文章给大家分享 GESP 三级 2024 年 12 月编程题第 2 题:打印数字。
题目链接
洛谷链接:B4067 打印数字
一、完成输入
根据输入格式的描述,输入第一行为正整数 n,可以定义为 int 类型。
int n;
cin>>n;
但考虑到题目运用的是字符串,所以可以直接定义字符串,访问字符串的内容即可,建议使用字符串,会更方便处理,因为输入没有空格,所以直接使用 cin 即可。
string n;
cin>>n;
输入完成后,我们开始分析题意。
二、分析题意
根据题目描述,小杨只有四种款式的设计,如果是换行输出,那么直接将每种数字对应的图形存储在二维的字符数组中,遇到相应的数字,直接输出即可。
但题目中是横向输出,那么这种方法就不可行了。
如果将其变成字符串的拼接,那么就相对容易解决了,此时需要分析每个数字对应的字符形式应该是怎么样的。
我们首先访问输入的 n,字符串的处理建议加上 #include<cstring>
头文件。
#include<cstring>
for(int i=0;i<n.length();i++)
{if(s[i]=='0'){}else if(s[i]=='1'){}else if(s[i]=='2'){}else if(s[i]=='3'){}
}
因为是固定样式,所以我们分析数字 0、1、2、3 这四个数字在 5 × 5 5\times 5 5×5 的矩阵中是怎么样的。
由于要输出 5 行,所以要在整个循环前加上一层。
for(int k=1;k<=5;k++)//五行
{for(int i=0;i<n.length();i++){if(n[i]=='0'){}else if(n[i]=='1'){}else if(n[i]=='2'){}else if(n[i]=='3'){}}
}
之后再根据输入的字符串进行判断