文章摘要
前言 算法编程最注重思维,而编程思维在本质上甚至接近数学。但算法最核心的部分一定是为了解决一个实际问题,这个问题是一定可以用算法进行解决的。对于大多数入门的人来说,刷题时确实都会按照题目给的要求来设计算法,但是在这一过程中,往往不会想要去寻求一个最优解。 在数学题中有通解与优解,编程题其实也一样。那么这篇文章记载的就是一些入门级别题目的优解及思维过程,其中还会适时包括编程语言的基础语法,希望阅读它…
前言 算法编程最注重思维,而编程思维在本质上甚至接近数学。但算法最核心的部分一定是为了解决一个实际问题,这个问题是一定可以用算法进行解决的。对于大多数入门的人来说,刷题时确实都会按照题目给的要求来设计算法,但是在这一过程中,往往不会想要去寻求一个最优解。 在数学题中有通解与优解,编程题其实也一样。那么这篇文章记载的就是一些入门级别题目的优解及思维过程,其中还会适时包括编程语言的基础语法,希望阅读它可以使你在刚刚入门编程这一领域时,就能够自主深化编程思维,提高算法设计水平。 问题 Z: 五级成绩区间 题目描述 输入五级成绩(A~E),输出相应的百分制成绩区间(0~100),要求使用多路选择语句。五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59)。 输入 B 输出 80-89 样例输入 E 样例输出 0-59 如果用常规思路,不难想到可以使用switch分支语句来解决问题,不过,如果了解了char类型与int类型之间的关系,完全可以用一个二维字节数组来完成任务 先直接上代码 #include iostream using namespace std; int main() { const char*range 5] = {"90-100","80-89","70-79","60-69","0-59"}; char level = 0; int n = 0; cin level; n = level - 'A'; cout range n] endl; return 0; } 基础知识 char类型其实就是占用一个1字节的整数型,范围是 -128~127 而如果向char中存入字母,比如将A存入char中,那么char的int 数值 表示其实就是A的 ASCII 编码,也就是65 思维过程 在输入明确表明被限制在了ABCDE的情况下,我们不妨建立一个{ABCDE}到{"90-100","80-89","70-79","60-69","0-59"}的映射,提到映射想必很熟悉了吧,没错高中必修一就学的知识,那么如何将ABCDE转换为char数组的下标呢?上面讲了char类型的int数值表示,所以可以直接将输入进来的字母减去 'A' (想想为什么用单引号),这样我们就得到了{ABCDE}到{01234}的映射,这不就是char数组的下标嘛,问题到此结束,没有使用任何一个分支语句! 未完待续→前言
算法编程最注重思维,而编程思维在本质上甚至接近数学。但算法最核心的部分一定是为了解决一个实际问题,这个问题是一定可以用算法进行解决的。对于大多数入门的人来说,刷题时确实都会按照题目给的要求来设计算法,但是在这一过程中,往往不会想要去寻求一个最优解。
在数学题中有通解与优解,编程题其实也一样。那么这篇文章记载的就是一些入门级别题目的优解及思维过程,其中还会适时包括编程语言的基础语法,希望阅读它可以使你在刚刚入门编程这一领域时,就能够自主深化编程思维,提高算法设计水平。
问题 Z: 五级成绩区间
题目描述
输入五级成绩(A~E),输出相应的百分制成绩区间(0~100),要求使用多路选择语句。五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59)。
输入
B
输出
80-89
样例输入
E
样例输出
0-59
如果用常规思路,不难想到可以使用switch分支语句来解决问题,不过,如果了解了char类型与int类型之间的关系,完全可以用一个二维字节数组来完成任务
先直接上代码
基础知识
char类型其实就是占用一个1字节的整数型,范围是-128~127而如果向char中存入字母,比如将A存入char中,那么char的int数值表示其实就是A的ASCII编码,也就是65
思维过程
在输入明确表明被限制在了ABCDE的情况下,我们不妨建立一个{ABCDE}到{"90-100","80-89","70-79","60-69","0-59"}的映射,提到映射想必很熟悉了吧,没错高中必修一就学的知识,那么如何将ABCDE转换为char数组的下标呢?上面讲了char类型的int数值表示,所以可以直接将输入进来的字母减去'A'(想想为什么用单引号),这样我们就得到了{ABCDE}到{01234}的映射,这不就是char数组的下标嘛,问题到此结束,没有使用任何一个分支语句!
未完待续→
本文采用 CC BY-NC-SA 4.0 协议进行授权,如无注明均为原创,转载请注明出处。
标题:初识编程语言:入门题练思维作者:九仞之行链接:http://dev.styunlen.cn/archives/post-1127.html
还没有评论呢 ~ 快来抢沙发吧 🛋️