南海区信息学竞赛试题c++课程7_第1页
南海区信息学竞赛试题c++课程7_第2页
南海区信息学竞赛试题c++课程7_第3页
南海区信息学竞赛试题c++课程7_第4页
南海区信息学竞赛试题c++课程7_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程编号7需要知识:1)整数运算2) +、-、+=、-=等运算3) for语句格式教学目标:1) for语句的开始和结束2) for语句的“步长”3) 简单的数字序列【复习】for语句的执行次序:for (第1部分;第2部分;第3部分) 语句/复合语句;第1节for语句的开始和结束例1: a到b。题目描述输入2个1000以内的正整数a和b, a<b,输出从a至U b的所有整数,数字之间留一个 空格。输入格式一行2个正整数:a和b, a<b,范围在1,1000。输出格式一行,从a到b的正整数。输入样例4 6输出样例4 5 6【分析】用for语句,循环变量从 a到b变化。参考程序:$

2、1 nclu.ciereami*-lining nQiQMp乱。口 3578910111213int ;int mala()cin »a »bfox( xnt x=a; tY=B; 1+) cout«i«'T T"r-etu-m 3 /说明第9句for语句中i是循环变量,开始i=a;执行的条件是i<=b,每次循环后i+,即i增加1。因为包含b所以要i<=b,不能i<b。思考输出了多少个数?例2: 2位偶数。题目描述输出所有的2位偶数,数字之间留一个空格。输入格式输出格式一行,所有 2位数偶数。输入样例输出样例10 12

3、 14【分析】最小的2位数是10,最大的是99,把其中的偶数输出即可。 参考程序:tream>u与工口g namespstd; 5 E7jj-int main ()f or ( 1口七 i=10 ; i<100 ; 1+-»-) if ( i%2=0) cout «i«"ieturn C;说明这里i<100和i<=99是等价的。练习1 :从0开始。题目描述C语言编程中,数数喜欢从 0开始。比如数数5次为:0,1,2,3,4,其中的妙处只有高级的 C程序员知道。现在输入n,要你按照 C程序员的方式数数。输入格式一行1个正整数:n,范

4、围在1,1000。输出格式一行n个整数:0 1 2 - O-输入样例4输出样例0 1 2 3练习2:前面数。题目描述如果你知道一个整数a,想输出a前面的N个数,怎么办?输入格式一行2个正整数:a和N,范围在1,10000。输出格式一行n个整数:-2 a-1输入样例10 5输出样例5 6 7 8 9第2节循环变量的步长例3:奇数。题目描述给定N,输出1到N之间的奇数。输入格式一行1个正整数:N,范围在1,10000。输出格式1附的正奇数。输入样例10输出样例1 3 5 7 9【分析】可以和例二一样做。更有效的办法是让i每次增加2,保证我们只枚举奇数。参考程序:二<:口口。工日using a

5、ajnespaae std; int N;Efa9-:ma i n.()ein »N;for ( i=l ; i<=N; i+=2 ) cout «i«r, ,r;return 二;说明循环变量i每次增加2,程序员形象称为:步长为2。练习3: 7的倍数。题目描述从小到大输出所有 3位数中7的倍数的数。输入格式输出格式一行整数,之间用空格隔开。输入样例输出样例105 112练习4: k的哥。题目描述输入一个正整数 k,输出:k k*k k*k*k ;当超过8位数时停止。输入格式第一行1个整数k,范围在2,15。输出格式一行,多个 k的哥。输入样例15输出样例1

6、5 225 3375 50625 759375 11390625第3节简单的数字序列例4:等差数列。题目描述一列数,如果相邻 2个的差都相等,就叫等差数列。例如: 2,5,8,11,14现在给定开始数 a和差d,输出第n项。输入格式一行3个正整数:a、d和n,范围在卜100,100。输出格式一行n个整数。输入样例4 5 6输出样例29说明:这个等差数列是4 9 14 19 24 29【分析】利用步长我们可以简单模拟数列,但同时要计数到N次。这样就有 2个因素:(1)数列本身的数 s(2)第几项的“个数”i解决问题有2个力法:(1)使用2个变量,同步变化。(2)找出规律(公式):4+0*5, 4

7、+1*5, 4+2*5, 4+3*5, 4*4*5, 4+5*5 推出:Si=a+d*i参考程序1 :1 #include <iostream>us± ng- najrie spaas 国七<1, int a,M;int.1B3101112c in »a »d»N;irrt 自三口:f口工(上口: i=L; i<N; i+ ) s-*-=d;cout « s«endlreturn 0;参考程序2 :if j_TLC J_ude Y 工0日 七: Ea_ni+usin.9 nom中号paqe 3 td; int

8、a,dN;int main()cln »a»d»N;a out « a+d* (N-l)«endl;retuzrii 二 f说明方法1是模拟法,虽然没有用数学公式的方法 2简单,当思路容易想,是我们信息学比 赛中的基本功。例5:双等差数列。题目描述求下列双等差数列的第N项。1 2 4 7 11 16 22输入格式一行1个正整数:N,范围在1,100。输出格式1个整数。输入样例4输出样例7【分析】数列相邻2个数的差为:1、2、3、4、5、,这个可以用循环变量i来变化。利用上面分 析的模拟法:1 2(=1 + 1) 4(=2+2) 7=(4+3)

9、11=(7+4)即:S=S+可以推算出数列的每一项。参考程序:Lu.de 七 二口 日 七 t a airL> using naznespace std;c w67 mg io it12int xnt 3,N; maiT.)cin »N;3=1 ;for ( int i=l; i<N 土+ s+=i;coat «s«endl;r?eti_ii?n 0 j说明数列一般有2种产生方式:公式法和递推法。递推法:从前面1项或几项推到后面一项的方法。练习5:打印数列1。题目描述打印下面数列的前 N项。1 4 10 19 31 46 .输入格式第一行1个整数n,范

10、围在1,100。输出格式一行,N个整数。输入样例4输出样例1 4 10 19练习6:打印数列2。题目描述打印下面数列的前 N项。1 3 7 15 31 63 .输入格式第一行1个整数n ,范围在1,20。输出格式一行,N个整数。输入样例3输出样例1 3 7测试题练习7:对称数列。题目描述输入一个正整数 N,打印一个对称数列,从1到N,在从N到1。例如:N=4时,输出:12 3 4 3 2 1输入格式第一行1个整数N,范围在1,100。输出格式一行,2N-1个整数。输入样例2输出样例1 2 1练习8:个位数是7。题目描述小花喜欢研究数字,经常奇思妙想。今天想研究以7结尾的数,请你编程帮助他。输入一个正整数 N,输出第 N个以7为个位数的正整数。输入格式一个正整数 N,范围在1,10000。输出格式一个正整数。输入样例5输出样例47说明:7,17,27,37,47,练习9:打印数列3。题目描述打印下面数列的前 N项。10 9 7 4 0 -5 .输入格式第一行1个整数n,范围在1,100。输出格式一行,N个整数。输入样例4输出样例10 9 7 4练习10:倒推数列。题目描述已

温馨提示

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

评论

0/150

提交评论