网站优化策略,wordpress获取分类id,南宁seo平台标准,做我的奴隶 good网站目录 T1. 字符三角形思路分析 T2. 计算 (a b) (c - b) 的值T3. 晶晶赴约会思路分析 T4. 角谷猜想思路分析 T5. 求满足条件的 3 位数思路分析 T1. 字符三角形
给定一个字符#xff0c;用它构造一个底边长 5 5 5 个字符#xff0c;高 3 3 3 个字符的等腰字符三角形。
时间… 目录 T1. 字符三角形思路分析 T2. 计算 (a b) × (c - b) 的值T3. 晶晶赴约会思路分析 T4. 角谷猜想思路分析 T5. 求满足条件的 3 位数思路分析 T1. 字符三角形
给定一个字符用它构造一个底边长 5 5 5 个字符高 3 3 3 个字符的等腰字符三角形。
时间限制1 s 内存限制64 MB
输入 输入只有一行包含一个字符。输出 该字符构成的等腰三角形底边长 5 5 5 个字符高 3 3 3 个字符。样例输入*样例输出 ****
*****思路分析
此题考查字符的输入输出属于入门题。按照样例输出的格式编写代码输出即可注意第 1 1 1 行和第 2 2 2 行前面的空格。
/** Name: T1.cpp* Problem: 字符三角形* Author: Teacher Gao.* DateTime: 2024/04/06 09:30*/#include iostreamusing namespace std;int main()
{char ch;cin ch;cout ch endl;cout ch ch ch endl;cout ch ch ch ch ch endl;return 0;
}T2. 计算 (a b) × (c - b) 的值
此题为 2023 年 9 月一级第二题原题见 2023 年 9 月青少年软编等考 C 语言一级真题解析中的 T2。
T3. 晶晶赴约会
晶晶的朋友贝贝约晶晶下周一起去看展览但晶晶每周的 1 1 1、 3 3 3、 5 5 5 有课必须上课请帮晶晶判断她能否接受贝贝的邀请如果能则输出 YES如果不能则输出 NO。注意 YES 和 NO 都是大写字母
时间限制1 s 内存限制64 MB
输入 输入有一行贝贝邀请晶晶去看展览的日期用数字 1 1 1 到 7 7 7 表示从星期一到星期日。输出 输出有一行如果晶晶可以接受贝贝的邀请输出 YES否则输出 NO。样例输入2样例输出YES思路分析
此题考查分支结构与逻辑运算属于入门题。
此题只需要判断输入的数值是否为 1 1 1、 3 3 3、 5 5 5 中的一个若是则输出 NO否则输出 YES 即可。
/** Name: T3.cpp* Problem: 晶晶赴约会* Author: Teacher Gao.* DateTime: 2024/04/07 12:23*/#include iostreamusing namespace std;int main()
{int x;cin x;if (x 1 || x 3 || x 5) {cout NO endl;}else {cout YES endl;}return 0;
}T4. 角谷猜想
所谓角谷猜想是指对于任意一个正整数如果是奇数则乘 3 3 3 加 1 1 1如果是偶数则除以 2 2 2得到的结果再按照上述规则重复处理最终总能够得到 1 1 1。如假定初始整数为 5 5 5计算过程分别为 16 16 16、 8 8 8、 4 4 4、 2 2 2、 1 1 1。
程序要求输入一个整数将经过处理得到 1 1 1 的过程输出来。
时间限制1 s 内存限制64 MB
输入 一个正整数 n n n n ≤ 2000000 n \le 2000000 n≤2000000。输出 从输入整数到 1 1 1 的步骤每一步为一行每一步中描述计算过程。最后一行输出 End。如果输入为 1 1 1直接输出 End。样例输入5样例输出5*3116
16/28
8/24
4/22
2/21
End思路分析
此题考察循环结构与分支结构属于入门题。
此题只需要按照题意进行模拟即可。由于不知道循环次数因此选用 while 语句较为恰当循环条件写为 n 1在循环体内判断 n n n 的奇偶性并根据奇偶性进行相应的计算、赋值更新以及输出相应步骤。注意循环结束后需要输出 End。
/** Name: T4.cpp* Problem: 角谷猜想* Author: Teacher Gao.* DateTime: 2024/04/07 13:56*/#include iostreamusing namespace std;int main()
{int n;cin n;while (n 1) {if (n % 2) {cout n *31 n*3 1 endl;n n*3 1;}else {cout n /2 n / 2 endl;n n / 2;}}cout End endl;return 0;
}T5. 求满足条件的 3 位数
编写程序按从小到大的顺序寻找同时符合条件 1 1 1 和 2 2 2 的所有 3 3 3 位数条件为
该数为完全平方数。该数至少有 2 2 2 位数字相同。
例如 100 100 100 同时满足上面两个条件。
时间限制1 s 内存限制64 MB
输入 输入一个数 n n n n n n 的大小不超过实际满足条件的 3 3 3 位数的个数。输出 输出为第 n n n 个满足条件的 3 3 3 位数升序。样例输入1样例输出100思路分析
此题考察枚举法属于循环结构的一般应用题求解方法比较多样有的代码复杂但容易想到有的代码简单但不容易想到。
首先此题需要一个计数器变量 tot 来统计满足条件的 3 3 3 位数的数量。程序主体部分可以采用循环枚举所有三位数对每个三位数进行条件 1 1 1 和 2 2 2 的判断若同时满足两个条件则将计数器变量 tot 累加一次然后判断 tot 是否等于 n n n若是则输出此刻对应的 3 3 3 位数即可。条件 2 2 2 是比较好判断的但是条件 1 1 1 判断起来比较麻烦可以采用 sqrt 结合类型转换来简化代码。若不知道 sqrt 函数那么就可能需要用循环去枚举了更好的做法是用二分。但是很显然 sqrt 和二分都不属于一级的考察范畴绝大部分教练也不会让学生在学完 sqrt 之后再去考一级。虽然用循环枚举也能解决但我们还是希望能有一个更好的解决方案。
更好的方案是将循环枚举 3 3 3 位数调整为枚举平方根这样就不需要判断条件 1 1 1 了而且可以极大的加快程序运行效率。由于最小 3 3 3 位数是 100 100 100它的平方根是 10 10 10而最大三位数是 999 999 999它的平方根约等于 31.6 31.6 31.6因此我们只需要在 10 ∼ 31 10 \sim 31 10∼31 的范围内进行枚举即可。参考代码也用这种方式来实现。
还有一种方法是将枚举 3 3 3 位数的循环改成 3 3 3 层循环每层循环枚举 3 3 3 位数的一个位这样对于条件 2 2 2 的判断就不需要数位分离操作了效果与第一种方法类似程序运行效率也完全一致此处不再赘述。
/** Name: T5.cpp* Problem: 求满足条件的 3 位数* Author: Teacher Gao.* DateTime: 2024/04/07 14:00*/#include iostreamusing namespace std;int main()
{int n, tot 0;cin n;for (int i 10; i 31; i) {int x i * i; // 确保满足条件 1// 数位分离int a x % 10;int b x / 10 % 10;int c x / 100;// 检测是否满足条件 2if (a b || a c || b c) {tot;// 检测是否是第 n 个满足条件的if (tot n) {cout x endl;break;}}}return 0;
}