13C++循环结构-for循环(3)——教学

一、回文数

(第36课 天连碧水碧连天-回文数)参考视频1

问题:“地满红花红满地,天连碧水碧连天”是一副回文联,用回文形式写成的对联,既可以顺读,也可以倒读,意思不变。在数学中也存在这样特征的一类数,称为回文数。设n是一任意自然数,将n各个数位上的数字反向排列所得自然数m,若m等于n,则n为回文数。例如,1234321是回文数,1234567不是回文数。

试编一程序,判断一个自然数是不是回文数。

如何将自然数n各个数位上的数字反向排列,组成新的自然数m?如输入的数n为123时,可先将m的初值设为0。第1次,先运用整除求余运算将n个位上的数字分离出来,即123%10得到3,再用m*10+3组成的新数赋值给m,然后将n的值缩小10倍;第2次,重复上面的步骤后,m为32,n为1;第3次,重复上面的步骤后,m为321,n为0。由于此时n的值为0,新数m构造完成,如图所示。

因为输入的自然数其位数是不确定的,因此每次分离数位时,循环次数也是不确定的。for语句使用很灵活,不仅可以用于循环次数已经确定的情况,而且也可以用于循环次数不确定而循环结束条件确定的情况。
流程图:

可以把for语句在形式上稍作修改,程序如下:
for(n=num; n>0; n=n/10)m=m*10+n%10;

二、斐波那契数列及长整型 long

(第37课 神奇的大自然-斐波那契数列及长整型)参考视频1

斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,··,这个数列从第3个数开始,每个数都等于前面两个数的和。这个数列与大自然中植物的关系极为密切,几乎所有花朵的花瓣数都来自这个数列中的一项数字,同时在植物的叶、枝、茎等排列中也存在斐波那契数列。
试编一程序,输出斐波那契数列中的前10项。
斐波那契数列的前两项为1,从第3项开始,每一项的值是前面两项的和。可以先把第1项al和第2项a2赋值为1;求第3项a3时,只要把al+a2的和赋值给a3并输出即可,再把a2赋值给al,a3赋值给a2,为求下一项做准备;然后依次重复执行求第3项的步骤,求出前10项。流程图如:

注:
在Dev-C+、Visual C++中,长整型 long的取值范围和整型int的取值范围是一样的,即-2147483648~2147483647,不要把长整型long当成超长整型long long的缩写。其实,C+并没有统一规定各类数据的精度、数值范围和在内存中所占的字节数,由各种C++编译系统根据自己的情况做出安排。C++只是规定int型数据所占的字节数不大于long型,long型数据所占的字节数不大于long long 型。

三、逻辑判断与推理

(第38课 警察抓小偷-逻辑判断与推理)参考视频1

问题:A、B、C、D四人中有一个人是小偷,已知四个人中有一个人说了假话,请根据四个人的供词来判断谁是小偷。
A:我不是小偷。
B:C是小偷。
C:D是小偷。
D:我不是小偷。
假设你是警察,请编个程序来判断一下,谁是小偷。
可以用1、2、3、4这四个数字分别作为A、B、C、D这四个人的编号。用变量i代表小偷,则四人所说的话可以分别用以下的逻辑式来表示:

A:我不是小偷,即i!=1。
B:C是小偷,即i==3。
C:D是小偷,即i==4。
D:我不是小偷,即i!=4。

如果说了真话,它的逻辑值就是“真”(true,值为1),说了假话它的逻辑值就是为“假”(false,值为0)。其中有一人说了假话,就是三个人说了真话,所以应该是:
(i!=1)+(i==3)+(i==4)+(i!=4)==3
i值由1到4枚举就可以得到结果。流程图如图:

可以应用枚举和逻辑表达式解决一些逻辑判断和逻辑推理问题,实现初级的人工智能。让计算机像人一样学习、思考,让计算机听懂人的语言,让计算机自动进行程序设计等都是人工智能研究的内容。人工智能、基因工程和纳米技术被称为21世纪三大尖端技术。

四、for语句的应用

(第39课 口算大师-for语句的应用)参考视频1

可以使用rand()%(9-1+1)+1随机产生一个一位数。我们设定0为加法,1为减法,使用rand()%2随机产生加减运算符。当是减法运算且x小于y时,可以交换x和y的值,也可以用y-x,以确保被减数大于减数。
试编一个“口算大师”程序,随机出10道一位数加减法的算术题,每完成一题后判断对错,每题10分,满分100分,全部完成后输出成绩。
流程图如:

posted @   gdyyx  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示