44循环例题选讲.pdf

上传人:小** 文档编号:15356661 上传时间:2020-08-09 格式:PDF 页数:17 大小:258.04KB
收藏 版权申诉 举报 下载
44循环例题选讲.pdf_第1页
第1页 / 共17页
44循环例题选讲.pdf_第2页
第2页 / 共17页
44循环例题选讲.pdf_第3页
第3页 / 共17页
资源描述:

《44循环例题选讲.pdf》由会员分享,可在线阅读,更多相关《44循环例题选讲.pdf(17页珍藏版)》请在装配图网上搜索。

1、程序设计与算法 (一 ) 李文新 郭炜 信息科学技术学院 1 循环例题选讲 信息科学技术学院 2 例 1.乘方计算 给出一个整数 a和一个正整数 n,求乘方 an。 输入 : 一行,包含两个整数 a和 n。 -1000000 = a = 1000000, 1 = n = 10000。 输出 : 一个整数,即乘方结果。题目保证最终结果的绝对值不超过 1000000。 样例输入 2 3 样例输出 8 3 #include using namespace std; int main() int a,n; cin a n; int result = a; for(int i = 0;i n-1; +i

2、) result *= a; cout result ; 例 1.乘方计算 例 2. 输入若干个整数求最大值 输入若干个整数(可正可负,不超过 int的表示范围),输出最大值 Sample Input -100 -20 20 -2 Sample Output 20 5 #include using namespace std; int main() int n,mx; bool first = true; /输入的是否是第一个数 while(cin n) if( first ) mx = n; first = false; else if( n mx ) mx = n; cout mx end

3、l; return 0; 例 2. 输入若干个整数求最大值 例 3. 输入至少 2个整数,求最大值和第二大值 Sample Input 1 5 6 3 4 6 Sample Output 6 6 Sample Input 1 5 6 3 4 Sample Output 6 5 7 #include using namespace std; int main() int n,max1,max2; int num = 0; / 输入的是第几个数 while(cin n) +num; if( num = 1) max1 = n; else if( num = 2) if( n max1) max2

4、= max1; max1 = n; else max2 = n; 例 3. 输入至少 2个整数,求最大值和第二大值 else / num 2 if( n = max1) max2 = max1; max1 = n; else if( n max2 ) max2 = n; cout max1 max2 endl; return 0; 例 3. 输入至少 2个整数,求最大值和第二大值 例 4. 斐波那契数列 菲波那契数列是指这样的数列 : 数列的第一个和第二个数都为 1, 接下来每个数都等于前面 2个数之和。给出一个正整数 k,要求菲 波那契数列中第 k个数是多少。 输入 : 输入一行,包含一个正

5、整数 k。( 1 = k = 46) 输出 : 输出一行,包含一个正整数,表示菲波那契数列中第 k个数的大小 样例输入 19 样例输出 4181 10 #include using namespace std; int main() int a1 = 1,a2 = 1; int k; cin k; if( k = 1 | k = 2) cout 1 endl; else int sum; for(int i = 0;i k-2; +i) sum = a1+a2; a1 = a2; a2 = sum; cout a2 endl; return 0; 例 4. 斐波那契数列 例 5. 求阶乘的和

6、给定正整数 n,求不大于 n的正整数的阶乘的和 (即求 1!+2!+3!+.+n!) 输入 输入有一行,包含一个正整数 n( 1 n 12)。 输出 输出有一行:阶乘的和。 样例输入 5 样例输出 153 12 例 5. 求阶乘的和 解法 1: #include using namespace std; int main() int n; cin n; int sum = 0; for(int i = 1;i = n; +i) int factorial=1; /存放 i阶乘 for(int j = 1; j = i; +j) factorial *= j; /此操作做 1+2+3+.+n次

7、sum += factorial; cout sum ; return 0; 13 例 5. 求阶乘的和 更快的解法 2: #include using namespace std; int main() int n; cin n; int sum = 0; int factorial = 1; for(int i = 1;i = n; +i) factorial *= i; sum += factorial; cout =2),求不大于 n的全部质数 解法 1: #include using namespace std; int main() int n; cin n; for(int i

8、= 2; i = n; +i) /每次判断 i是否是质数 int k; for(k = 2; k i; +k) if( i % k = 0) break; if( k = i) / k = i说明没有执行过 break cout i =2),求不大于 n的全部质数 解法 1: #include using namespace std; int main() int n; cin n; for(int i = 2; i = n; +i) /每次判断 i是否是质数 int k; for(k = 2; k i; +k) if( i % k = 0) break; if( k = i) / k = i说明没有执行过 break cout i =2),求不大于 n的全部质数 改进的解法 2: #include using namespace std; int main() int n; cin n; cout 2 endl; for(int i = 3; i = n; i+=2) /每次判断 i是否是质数 int k; for(k = 3; k i) break; if( k*k i) cout i endl; return 0; 17

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!