一、while语句
1、while(条件) {执行语句}
(条件)规定了while运行的范围。
例1
(累加法)(1)求1+2+3+…+50的和。 (2)1+2+3+…+n的和。
(1) (2)求和公式。
2、do-while 语句
do{执行语句}
while();
先执行一次语句,再进入循环。注意末尾分号。
例2
利用循环结构判断一个正整数n是否为素数。
习题
p81 16
输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
p81 17
求Sn=a+aa+aaa+…+aa…aa(n个a)之值,其中a是一个数字。n由键盘输入。
例题
(循环的嵌套 )
1、百鸡百钱问题:100文钱,买100只鸡,公鸡3文一只,母鸡2文一只,小鸡1文一只,求能买多少只公鸡、母鸡、小鸡?
三重循环,通过一个个查找,方法比较简单,局限性比较大。可以将一些数学式子进行简化,再编写代码。
2、输出三角形
(1)下三角+数字变大+个数增多 已知:数字是从1--9。
(2)字符下三角+随行加1
(
(3)字符倒三角(空格和字符的结合)
方2:(写法不同)
3、找出100~200内的素数
(在输出时使用控制符)
line16改为: cout<<setw(5)<<i; (头文件增加#include<iomanip>)
区别:setw(5) 如果数字数量没有5个,是先从前面开始空格。
4、
精髓:while的用法,科学计数法的限定
5、斐波那契数列
方1:
方2:
两种方法中,红色框是核心变化,而橙色线是核心变化引发的其他各种变化。可以看到,是牵一发而动全身。(更简便:方2中甚至两个if语句都不用)
方法比较:第一种方法是根据学过的知识进行改编而成;第二种方法创新性地利用两次累加交错,并在结果中一次性输入两个累加量(精髓)来形成,这种方法要注意的就是图中橙线标注的内容。
编译中的问题:1,循环语句后的大括号。 2,if else组合的含义,排他性,要注意不要重复。3,计算输入个数的j++/j+=2 放置的位置。
6、输入若干正整数,求其中的最大值。
7、输出乘法口诀表