怎么给甲方做网站备案,外贸网站 建站,wordpress portfolio插件,怎么建设影视卡网站文章目录 前言一、循环综合举例1. 质数判断问题2. 百人百砖问题3. 猴子吃桃问题4. 质因数分解问题5. 数字统计问题。 二、课后练习2. 末尾3位数问题3. 求自然常数e4. 数据统计问题5. 买苹果问题。6. 找5的倍数问题。 总结 前言
本课使用循环结构#xff0c;介绍了以下问题的解… 文章目录 前言一、循环综合举例1. 质数判断问题2. 百人百砖问题3. 猴子吃桃问题4. 质因数分解问题5. 数字统计问题。 二、课后练习2. 末尾3位数问题3. 求自然常数e4. 数据统计问题5. 买苹果问题。6. 找5的倍数问题。 总结 前言
本课使用循环结构介绍了以下问题的解决方法。
质数判断问题百人百砖问题猴子吃桃问题质因数分解问题数字统计问题 一、循环综合举例
1. 质数判断问题
编程输出100至200之间的所有质数。
#include iostream
#include cmath
using namespace std;int main() {bool flag;for(int i100; i200; i) {flagtrue;for(int j2; jsqrt(i); j) {if(i%j0) {flagfalse;break;}}if(flag) cout i \t;}cout endl;return 0;
}
2. 百人百砖问题
100块砖100个人搬。男人每次搬砖4块女人每次搬砖3块2个小寒搬砖1块.若要一次性搬完问男人、女人、小孩各要安排多少人
#include iostream
using namespace std;int main() {int men, women, children, flag;for(int men0; men25; men) {for(int women0; women33; women) {children100-men-women;if(children%20 4*men3*womenchildren/2 100)cout men \t women \t children endl;}}return 0;
}
运行程序输出
0 20 80
5 13 82
10 6 84可以与下面的程序比较以下看孰的运行效率更高。
#include iostream
using namespace std;int main() {int men, women, children, flag;for(int men0; men25; men) {for(int women0; women33; women) {for(int children0; children100; children) {if(children%20 menwomenchildren100 4*men3*womenchildren/2 100)cout men \t women \t children endl;}}}return 0;
}
运行程序t同样输出如下
0 20 80
5 13 82
10 6 843. 猴子吃桃问题
猴子摘了一堆桃当天吃掉一半觉得不过瘾又多吃了一个单二天它吃了剩下的桃子的一半又多一个以后每天都这样吃下去直到第10天要吃时它发现只剩下一个桃子了。问猴子第一天共摘下了多少个桃子
#includeiostream
using namespace std;
int main() {int rest 1;//第10天只剩一个桃子for(int day 9; day 0; day--) {rest (rest 1) * 2;//每天的桃子总数是后一天剩余桃子加1乘2}cout The number of peaches on the first day is: rest endl;return 0;
}运行程序输出结果为 1534
用while循环实现应该代码更好理解一些些。
#includeiostream
using namespace std;
int main() {int rest 1;//第10天只剩一个桃子int day 9;while(day--) {rest (rest 1) * 2;//每天的桃子总数是后一天剩余桃子加1乘2}cout The number of peaches on the first day is: rest endl; //1534return 0;
}当然最好写成下面这样子代码更便于阅读理解。
#includeiostream
using namespace std;
int main() {int rest 1;//第10天只剩一个桃子int day 9;while(day) {rest (rest 1) * 2;//每天的桃子总数是后一天剩余桃子加1乘2day--;}cout The number of peaches on the first day is: rest endl; //1534return 0;如果改成“直到第8天要吃时它发现只剩下一个桃子了”则
#includeiostream
using namespace std;
int main() {int rest 1;//第8天只剩一个桃子cout 8 \t 1 endl;int day 7;while(day) {rest (rest 1) * 2;//每天的桃子总数是后一天剩余桃子加1乘2cout day \t rest endl;day--;}cout The number of peaches on the first day is: rest endl;return 0;
}运行代码输出如下
8 1
7 4
6 10
5 22
4 46
3 94
2 190
1 382
The number of peaches on the first day is: 382前面我们做过一个类似的练习如下。 水果店新进了一批桃子共计1020个。第一天卖了一半多两个以后每天卖了剩下的一半多两个问几天以后能卖完这些桃子
#includeiostream
using namespace std;int main() {int peaches1020;int days0;while(peaches!0) {peaches peaches/2 - 2;days;cout days : peaches endl;}cout Total days: days endl;return 0;
}
4. 质因数分解问题
已知正整数n是两个不同的质数的乘积试求出较大的那个质数。 【数学分析】 这个题具有很大的欺骗性由于题目名为质因数分解可能会让你马上想到判断质数。但在问题描述中已经确定 n 是两个不同质数的乘积实际上不需要判断质数。按顺序求两个乘数则后一个乘数一定大于或等于前一个乘数。因此这个题目就变成一个整数可以拆成两个数相乘输出第二个乘数。
#include iostream
using namespace std;int main() {int n;cin n;for(int i2; in/2; i) {if(n%i0) {cout n/i endl;break;}}return 0;
}
本题依照上述代码实际上应该写成“已知正整数n是两个不同的因数的乘积试求出较大的那个因数。” 本题很容易让人联想到关于偶数的哥德巴赫猜想即任一大于2的偶数都可写成两个素数之和。读者可以尝试编程验证之。
5. 数字统计问题。
请统计某个给定范围l, r的所有整数中数字2出现的次数。比如给定范围2, 22]数字2在数2中出现了1次在数12中出现1次在数20中出现1次在数21中出现1次在数22中出现2次所以数字2在该范围内一共出现了6次。
输入一行为两个正整数 l 和 r ,(0≤lr≤1000)两个整数之间用一个空格隔开。输出一行表示数字2出现的次数。 样例输入 2 22 样例输出 6
#include iostream
using namespace std;int main() {int left, right, temp, count0;cin left right;for(int ileft; iright; i) {temp i;while(temp) {if(temp%102) {count;}temp / 10;}}cout count endl;return 0;
}
二、课后练习
2. 末尾3位数问题
编写程序计算 9 9 99 99^{99} 9999结果的末尾3位数字。 【分析】本题可以参见第10课中介绍的“幂运算的尾数问题”实例——即幂运算 a b a^b ab的末尾3位数字是多少。
#include iostream
using namespace std;int main() {int a99, b99;int tail1;for(int i1; ib; i) {tail (tail*a)%1000;}if(tail100) cout tail endl;else if(tail10) cout 0 tail endl;else cout 00 tail endl;return 0;
}
运行程序输出 899
3. 求自然常数e
已知自然常数e计算公式如下 e 1 1 1 ! 1 2 ! 1 3 ! . . . e1\frac{1}{1!}\frac{1}{2!}\frac{1}{3!}... e11!12!13!1... 编程计算e的近似值精度要求为 1 0 − 6 10^{-6} 10−6。
Python实现代码如下。
# e 1 1/1! 1/2! 1/3! ... 1/n!
import mathe 1.0
eps 0.1e-7
termN 1
factorial 1while math.fabs(1/factorial) eps:e 1/factorialprint(termN {}\t e {:.10f}.format(termN, e))termN 1factorial * termNprint(Approximate of e is %.8f % e)C实现代码如下。
#include iostream
#include iomanip
using namespace std;//# e 1 1/1! 1/2! 1/3! ... 1/n!
int main() {double e 1.0;double eps 0.1e-7;int termN 1;long long factorial 1;while(1.0/factorialeps) {e 1.0/factorial;cout termN \t fixed setprecision(8) e endl;termN 1;factorial * termN;}cout Approximate of e is e endl;return 0;
}
运行程序输入如下
1 2.00000000
2 2.50000000
3 2.66666667
4 2.70833333
5 2.71666667
6 2.71805556
7 2.71825397
8 2.71827877
9 2.71828153
10 2.71828180
11 2.71828183
Approximate of e is 2.71828183注意代码中的表达式1.0/factorial不能写成1/factorial。
4. 数据统计问题
输入一些正整数保证这些数都是不超过1000的整数输入大于等于1000的时结束程序)求出它们的最小值、最大值和平均值。 输入若干个正整数空格分隔以1000为结束。 输出三部分内容即最小值、最大值和平均值。 样例输入 2 8 3 5 1 7 3 6 1000 样例输出 min 1, max 8, average 4.375
#include iostream
using namespace std;//输入一些正整数保证这些数都是不超过1000的整数
//输入大于等于1000的时结束程序)求出它们的最小值、最大值和平均值。
int main() {int n, min1000, max0, count0, sum0;while(cinn) {if(n1000) break;if(nmin) minn;if(nmax) maxn;sum n;count;}cout min min;cout , max max;cout , average (sum*1.0/count);return 0;
}
运行程序某次输入输出如下
2 8 3 5 1 7 3 6 1000
min1, max8, average4.3755. 买苹果问题。
最近水果店新购入一批苹果每个苹果0.8元。卡路第一天买2个苹果从第二天开始每天买前一天的2倍直到当天购买的苹果个数达到且不超过50个请级写程序求每天平均花多少钱买苹果
#include iostream
using namespace std;//最近水果店新购入一批苹果每个苹果0.8元。卡路第一天买2个苹果
//从第二天开始每天买前一天的2倍直到当天购买的苹果个数达到且不超过50个
//请级写程序求每天平均花多少钱买苹果
int main() {int n2, days0; //第一天买2个苹果float unit_price 0.8;float total_consume 0.0;while(n50) {days;total_consume unit_price*n;n * 2;}cout (total_consume/days) endl;return 0;
}
运行程序输出 9.92
6. 找5的倍数问题。
从键盘输入 n 个整数 n ≤10)找到第一个能被5整除的数。如果找到了则输出此数结束输入如果没找到则输出未找到。 输入 n 个整数即待判断数据最多10个。 输出1个整数或未找到1个整数为输入中第一个能被5整除的数。
#include iostream
using namespace std;//从键盘输入n个整数n10)找到第一个能被5整除的数。
//如果找到了则输出此数结束输入如果没找到则输出未找到。
int main() {int n, c0; //第一天买2个苹果while(cinn c10) {c;if(5n) {cout n endl;break;}}return 0;
} 总结
借助于在循环体中适当地使用break语句和continue语句for循环、while循环和do-while循环其实是可以相互替换的。 文章转载自: http://www.morning.lgwpm.cn.gov.cn.lgwpm.cn http://www.morning.jcxgr.cn.gov.cn.jcxgr.cn http://www.morning.cfhwn.cn.gov.cn.cfhwn.cn http://www.morning.ctwwq.cn.gov.cn.ctwwq.cn http://www.morning.npmcf.cn.gov.cn.npmcf.cn http://www.morning.gywxq.cn.gov.cn.gywxq.cn http://www.morning.sdhmn.cn.gov.cn.sdhmn.cn http://www.morning.lywpd.cn.gov.cn.lywpd.cn http://www.morning.njpny.cn.gov.cn.njpny.cn http://www.morning.cwlxs.cn.gov.cn.cwlxs.cn http://www.morning.txrq.cn.gov.cn.txrq.cn http://www.morning.ypzsk.cn.gov.cn.ypzsk.cn http://www.morning.tntbs.cn.gov.cn.tntbs.cn http://www.morning.jphxt.cn.gov.cn.jphxt.cn http://www.morning.gqhgl.cn.gov.cn.gqhgl.cn http://www.morning.fgsct.cn.gov.cn.fgsct.cn http://www.morning.sjftk.cn.gov.cn.sjftk.cn http://www.morning.pdtjj.cn.gov.cn.pdtjj.cn http://www.morning.qrndh.cn.gov.cn.qrndh.cn http://www.morning.wlqbr.cn.gov.cn.wlqbr.cn http://www.morning.lstmq.cn.gov.cn.lstmq.cn http://www.morning.fqtzn.cn.gov.cn.fqtzn.cn http://www.morning.clpfd.cn.gov.cn.clpfd.cn http://www.morning.mm27.cn.gov.cn.mm27.cn http://www.morning.tnfyj.cn.gov.cn.tnfyj.cn http://www.morning.ckxd.cn.gov.cn.ckxd.cn http://www.morning.jfjqs.cn.gov.cn.jfjqs.cn http://www.morning.trrhj.cn.gov.cn.trrhj.cn http://www.morning.pzrrq.cn.gov.cn.pzrrq.cn http://www.morning.glwyn.cn.gov.cn.glwyn.cn http://www.morning.frtt.cn.gov.cn.frtt.cn http://www.morning.ysnbq.cn.gov.cn.ysnbq.cn http://www.morning.kpwcx.cn.gov.cn.kpwcx.cn http://www.morning.hyfrd.cn.gov.cn.hyfrd.cn http://www.morning.kgjyy.cn.gov.cn.kgjyy.cn http://www.morning.gnbfj.cn.gov.cn.gnbfj.cn http://www.morning.zycll.cn.gov.cn.zycll.cn http://www.morning.bhznl.cn.gov.cn.bhznl.cn http://www.morning.hgtr.cn.gov.cn.hgtr.cn http://www.morning.gqfks.cn.gov.cn.gqfks.cn http://www.morning.rzrbw.cn.gov.cn.rzrbw.cn http://www.morning.xhddb.cn.gov.cn.xhddb.cn http://www.morning.yqwrj.cn.gov.cn.yqwrj.cn http://www.morning.lsyk.cn.gov.cn.lsyk.cn http://www.morning.zrlms.cn.gov.cn.zrlms.cn http://www.morning.qbwyd.cn.gov.cn.qbwyd.cn http://www.morning.jpdbj.cn.gov.cn.jpdbj.cn http://www.morning.xstfp.cn.gov.cn.xstfp.cn http://www.morning.lveyue.com.gov.cn.lveyue.com http://www.morning.xxrgt.cn.gov.cn.xxrgt.cn http://www.morning.rhfh.cn.gov.cn.rhfh.cn http://www.morning.rgmd.cn.gov.cn.rgmd.cn http://www.morning.yrpd.cn.gov.cn.yrpd.cn http://www.morning.ylxgw.cn.gov.cn.ylxgw.cn http://www.morning.mrttc.cn.gov.cn.mrttc.cn http://www.morning.dkbsq.cn.gov.cn.dkbsq.cn http://www.morning.bfycr.cn.gov.cn.bfycr.cn http://www.morning.hmgqy.cn.gov.cn.hmgqy.cn http://www.morning.cxlys.cn.gov.cn.cxlys.cn http://www.morning.gllgf.cn.gov.cn.gllgf.cn http://www.morning.fzqfb.cn.gov.cn.fzqfb.cn http://www.morning.ykrck.cn.gov.cn.ykrck.cn http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn http://www.morning.nlrxh.cn.gov.cn.nlrxh.cn http://www.morning.mhsmj.cn.gov.cn.mhsmj.cn http://www.morning.fxygn.cn.gov.cn.fxygn.cn http://www.morning.bsxws.cn.gov.cn.bsxws.cn http://www.morning.gczqt.cn.gov.cn.gczqt.cn http://www.morning.rblqk.cn.gov.cn.rblqk.cn http://www.morning.wgxtz.cn.gov.cn.wgxtz.cn http://www.morning.nndbz.cn.gov.cn.nndbz.cn http://www.morning.fjkkx.cn.gov.cn.fjkkx.cn http://www.morning.xwbld.cn.gov.cn.xwbld.cn http://www.morning.dljujia.com.gov.cn.dljujia.com http://www.morning.kgslc.cn.gov.cn.kgslc.cn http://www.morning.qrgfw.cn.gov.cn.qrgfw.cn http://www.morning.lrjtx.cn.gov.cn.lrjtx.cn http://www.morning.hbtarq.com.gov.cn.hbtarq.com http://www.morning.sgbjh.cn.gov.cn.sgbjh.cn http://www.morning.zkbxx.cn.gov.cn.zkbxx.cn