B3888 [语言月赛 202311] 画图练习 题解
Source & Knowledge
2023 年 11 月语言月赛,由洛谷网校入门计划/基础计划提供。
考察循环嵌套结构、质数的定义。
文字题解
这道题目是一道典型的输出字符画像的题目,考察了循环嵌套结构。
首先,我们外层循环变量
在这里,一个常见的问题是,如何获取当前本应填充的字母的 ASCII 码?假设我们用变量 ch 存储当前本应填充的字母,那么 ch 在进行算术运算时,其自动代入的就是 ch 这个字母的 ASCII 码值。例如说:int x=k+ch,就表达出了当前列数加上当前本应填充的字母的 ASCII 码的含义。由于大写字母的 ASCII 码值连续,因此我们可以直接使用 char ch='A'+i-1 的方式,获取第
下一个关键点是质数。让我们回顾一下质数的定义:
一个质数是指,不能被
1 和自身以外的正整数所能整除的正整数。
根据这个定义,对于一个正整数
bool flag=true;//如果 flag 为 true,则 x 是质数,否则 x 不是质数。
for (int j=2;j<=x-1;j++) {
if (x%j==0) //从 2 到 j-1,一个一个试除 x,判断能否整除 x。
flag=false;//如果能整除,说明 x 不是质数。
}
我们可以根据此,判断当前列数加上当前本应填充的字母的 ASCII 码是否为质数。如果是,则输出这个字母,并且让字母变为下一个字母。否则输出空格。
详细的代码请参考视频题解。