版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4讲-循环结构while1例1:求两个数a,b(<1000)的最小公倍数。样例:输入:
30输出:60vara,b:integer;s:longint;beginreadln(a,b);s:=a;whilesmodb<>0dos:=s+a;writeln(s);end.最大公约数?例2、输入n(<1015),求他的各位数字之和.如:输入:1234输出:10varn:int64;s,t:integer;beginreadln(n);s:=0;whilen<>0dobegint:=nmod10;s:=s+t;n:=ndiv10;end;writeln(s);end.Int64:[-9*1018,9*1018][-9223372036854775808,
9223372036854775807]For与while的区别与联系:1、for必须能预先确定循环次数。循环控制变量,每次自动加1,不能人为的改变。2、while可以不知道循环次数。在循环体内必须有修改循环控制变量的语句,否则死循环。循环控制变量的改变可以不是1。但必须是整数。3、能用for的一定能用while实现。例1、键入一个自然数N(<=106),求这个自然数的因数的个数S(包含1和n)。如:输入:6输出:4varn,I,s:longint;beginreadln(n);s:=0;
fori:=1tondoifnmodi=0thens:=s+1;writeln(s);end.varn,i,s:longint;beginreadln(n);s:=0;i:=1;whilei<=ndobeginifnmodi=0thens:=s+1;
i:=i+1;end;writeln(s);end.例2:求s=3+6+9+……+300的值。vari,s:integer;begins:=0;fori:=1to100dos:=s+3*i;writeln(s);end.vari,s:integer;begins:=0;i:=0;whilei<=300dobegins:=s+i;
i:=i+3;end;writeln(s);end.二、循环结构的综合练习1、陶陶摘苹果(NOIP2006p)(apple.pas/c/cpp)【问题描述】
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。【输入】第1行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。第2行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。【输出】输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。【样例输入】110100200150140129134167198200111【样例输出】5varh,x,sum,i:integer;beginsum:=0;readln(h);h:=h+30;fori:=1to10dobeginread(x);ifx<=htheninc(sum);end;writeln(sum);end.2、灯的开关状态
有N个灯放成一排,从1到N依次顺序编号,开始时全部打开。有N个人也从1到N依次编号。1号人将灯全部关闭,2号人将凡是编号为2的倍数的灯打开;3号人将凡是编号为3的倍数的灯作相反处理(该灯如为打开的,则将它关闭;如关闭的,则将它打开)。以后的人都和3号人一样,将凡是自己编号倍数的灯作相反处理。编程实现:第N个人操作后,按顺序输出灯的状态。(1-表示灯打开,0-表示灯关闭)输入:n(n<=100),灯的个数,输出:灯的状态,01序列,中间无空格。样例:输入:2输出:01varn,m,i:integer;beginreadln(n);fori:=1tondobeginm:=trunc(sqrt(i));ifm*m=ithenwrite(0)elsewrite(1);end;end.编号i的灯的操作次数等于因数个数,只有完全平方数的因数个数为奇数.所以判断第i个灯的状态:如果i是完全平方数则状态为0,否则为1.算法分析:有多少盏灯关闭?
结论:编号为i的灯经过偶数次操作为1,奇数次操作为0.先分析:编号为4、5、8、15、25、32、36……灯最后的状态初始状态:1111111111……13、已知方程:在(0,),有唯一的实数解。求出方程的实数解,小数点后保留3位有效数字。vara,b,f1,f2,f:real;begina:=0;b:=3.14;whileabs(b-a)>0.0001dobeginf1:=sin(a)-a/10;f2:=sin(b)-b/10;f:=sin((a+b)/2)-(a+b)/2/10;iff1*f>=0thena:=(a+b)/2;iff2*f>=0thenb:=(a+b)/2;end;writeln(a:0:3);end.4、输入一个正整数N(<10000),把它分解成质因子相乘的形式。如:36=1X2X2X3X3;
19=1X19样例:输入:
36输出:
1*2*2*3*3varn,i:integer;beginreadln(n);write(1);fori:=2tondowhilenmodi=0dobeginwrite('*',i);n:=ndivi;end;end.怎样保证i是素数?改变输出格式:输入:36输出:2232说明:2个2,2个3相乘。varn,i,s,t:longint;beginreadln(n);fori:=2ton-1dobegins:=0;t:=n;whilenmodi=0dobegininc(s);n:=ndivi;end;ifs>0thenwriteln(i,'',s);end;end.5、已知:N!=1*2*...*n。输入n(<10000),求n!后面连续0的个数。样例输入:
15样例输出:
3
(说明:15!=1307674368000)varn,i,s,t:integer;beginreadln(n);s:=0;fori:=1tondobegint:=i;whiletmod5=0dobegins:=s+1;t:=tdiv5;end;end;writeln(s);end.算法一varn,s:integer;beginreadln(n);s:=0;whilen<>0dobegins:=s+ndiv5;n:=ndiv5;end;writeln(s);end.算法二6、津津的储蓄计划(NOIP2004T)(save.pas/dpr/c/cpp)【问题描述】
津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。例如11月初津津手中还有83元,妈妈给了津津300元。津津预计11月的花销是180元,那么她就会在妈妈那里存200元,自己留下183元。到了11月月末,津津手中会剩下3元钱。津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的前,不够这个月的原定预算。如果出现这种情况,津津不得不在这个月省吃俭用,压缩预算。现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。【输入文件】输入包括12行数据,每行包含一个小于350的非负整数,分别表示1月到12月津津的预算。【输出文件】输出一行,这一行只包含一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出-X,X表示出现这种情况的第一个月;否则输出到2004年年末津津手中会有多少钱。【样例输入1】29023028020030017034050908020060【样例输出1】-7【样例输入2】29023028020030017033050908020060【样例输出2】1580Constm=300;Varsave,left,x,i:integer;beginleft:=0;save:=0;fori:=1to12dobeginread(x);ifx>m+leftthenbegin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防火门监理规划
- 2025年中考数学押题预测卷解析版(甘肃兰州卷)
- 气管套管脱出应急演练脚本
- 消防水泵接合器检修规程
- 一例妊娠剧吐患者护理个案
- 一例耳鼻喉术后出血患者的护理个案
- 三防灯检修规程
- 2026年广东省梅州市网格员招聘考试备考题库及答案解析
- 2026年厦门市思明区网格员招聘笔试参考试题及答案解析
- 2026年徐州市鼓楼区网格员招聘考试备考题库及答案解析
- 2025-2030中国高纯三氟化硼行业发展格局及供需趋势预测报告
- 贵州毕节市2024小考数学试卷
- 广西壮族自治区选聘两新组织党建工作组织员笔试真题2024
- 腹膜透析患者如何预防腹膜炎
- 2025年月度工作日历含农历节假日电子表格版
- 儿童睡眠障碍的医学诊断与治疗
- 应急资源调查报告
- 劳动合同书精彩劳动合同书
- 高等流体力学课件
- 今日头条2013年B轮融资商业计划书PPT
- 华宁县华电磷业有限责任公司大新寨磷矿矿山地质环境保护与土地复垦方案
评论
0/150
提交评论