repeat语句
一、repeat语句格式
repeat语句用于“重复执行循环体,直到指定的条件为真时为止”
repeat语句格式:
repeat
语句1;
语句2;
……
语句n;
until 布尔表达式;
repeat重复基本上有与while重复一样的描述循环计算的能力,但有三点不同:
1、在repeat语句中,布尔表达式求值在循环体执行之后,而在while语句中,布尔表达式求值在循环体执行之前。
2、while语句的循环体部分只能是一个语句,因此当重复动作包含几个语句时,需用begin和end使它们变成一个复合语句。而repeat语句的保留字repeat和until已起到语句括号作用,可以包含多个语句而无需begin和end。
3、repeat语句中,仅当布尔表达式值为true时结束循环,而while语句是当布尔表达式值为false时才结束循环。
一般,“repeat 语句; until 布尔表达式;”能用while语句表示为:“while not (布尔表达式) do 语句;”
例1:有一大堆核桃,两个两个拿,余下一个;三个三个拿,余下两个;四个四个拿,余下三个;以此类推,直至九个九个拿,余下八个。输出这一大堆核桃最少是几个?
var
i:integer;
begin
i:=10;
repeat
i:=i+1;
until (i mod 2=1) and (i mod 3=2) and (i mod 4=3) and (i mod 5=4) and (i mod 6=5) and (i mod 7=6) and (i mod 8=7) and (i mod 9=8);
writeln(i);
end.
例2:利用格里高利公式:π/4=1-1/3+1/5-1/7+1/9-1/11……输出π的值,要求精确到小数点后第六位。
var
n,s:longint;
t,pi:real;
begin
pi:=0;
t:=1;
n:=1;
s:=1;
repeat
pi:=pi+t;
n:=n+2;
s:=-s;
t:=s/n;
until abs(t)<0.000001;
pi:=pi*4;
writeln(pi:0:6);
end.
例3:有一个自然数,它的各位数字之和能被17整除。这个数的后继数(即这个数加1)的各位数字之和也能被17整除。编程输出具有这种特性的最小的那个自然数。
var
f:boolean;
i,s,m,t:integer;
begin
f:=false;
i:=1;
repeat
i:=i+1;
s:=0;
m:=i;
while m>0 do begin
s:=s+m mod 10;
m:=m div 10;
end;
if s mod 17=0 then begin
s:=0;
m:=i+1;
while m>0 do begin
s:=s+m mod 10;
m:=m div 10;
end;
if s mod 17=0 then f:=true;
end;
until f;
writeln(i);
end.
思考:优化一下,i可以从几开始?
例4:哥德巴赫猜想指出:任何一个大偶数都可以表示成两个素数的和。例如:8=3+5,44=13+31等,请编程在6至100范围内验证哥德巴赫猜想。
var
i,j,k,m,n:integer;
f,b:boolean;
begin
i:=6;
repeat
j:=3;
f:=true;
while (j<=i div 2) and f do begin
b:=true;
k:=i-j;
m:=2;
n:=trunc(sqrt(k));
while b and (m<=n) do begin
if (j mod m=0) or (k mod m=0) then b:=false;
m:=m+1;
end;
if b then begin
writeln(i,'=',j,'+',k);
f:=false;
end;
j:=j+2;
end;
i:=i+2;
until i>100;
end.
二、作业
1、zerojudge:a518
2、输出1至100之间所有的素数。
3、输出2至1000之间所有的完数,完数是指此数的所有因子之和等于此数,如:28=1+2+4+7+14。
repeat语句的更多相关文章
- Shell 语法 if 、 case 、for 、 while、 until 、select 、repeat、子函数
if语法 : if [ expression ] then commandselif [ expression2 ] then commandselse commandsfi ...
- Delphi编程建议遵守的规范1---缩进、各种语句的用法
在编程时候,尤其是在一个大的团队里面,遵守统一的编程规范是极其重要的.为所有的开发人员制定一个源代码书写标准,以及程序和文件的命名标准,使他们在编程时有一致的格式,这样,每个编程人员编写的代码能够被其 ...
- do-while语句
一.语句格式格式1:do 语句1;while (条件表达式); 格式2:do { 语句1; 语句2; -}while (条件表达式); 语句执行过程:1.执行一遍循环体.2.求出作为循环条件的 ...
- Verilog HDL常用的行为仿真描述语句
一.循环语句 1.forever语句 forever语句必须写在initial模块中,主要用于产生周期性波形. 2.利用for.while循环语句完成遍历 for.while语句常用于完成遍历测试.当 ...
- 写自己的第二级处理器(3)——Verilog HDL行为语句
我们会继续上传新书<自己动手写处理器>(未公布),今天是第七章,我每星期试试4 2.6 Verilog HDL行为语句 2.6.1 过程语句 Verilog定义的模块一般包含有过程语句,过 ...
- R语言︱函数使用技巧(循环、if族/for、switch、repeat、ifelse、stopifnot)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 后续加更内容: 应用一:if族有哪些成员呢?- ...
- Delphi备忘录——基本语句
选择语句: 1.If-Then-Else选择语句: If (表达式) Then Begin 语句块; End Else If(表达式) Then Begin 语句块; End; Else Begin ...
- MySQL中SQL语句2
上一片介绍了一些基本的SQL的增删改查,这一片会介绍一些进阶的SQL语句使用. MySQL中的视图 视图是什么?当我们总是查询几张表的某个字段时,可以创建一张虚拟表,把这几个字段写入这个虚拟的表,这样 ...
- Verilog学习笔记基本语法篇(六)········ 循环语句
在Verilog中存在着4种类型的循环语句,用来控制执行语句的执行次数. 1)forever语句: 连续执行的语句. 2)repeat语句: 连续执行n次的语句. 3)while语句: 执行语 ...
随机推荐
- php数据库封装与引用方法
1.做封装类 <?php class DBDA { //成员变量 数据库的四个条件 public $host="localhost"; public $uid = " ...
- UITableViewCell自定义
⼀.⾃定义Cell UITableView中系统的cell共提供了四种默认样式,分别是: UITableViewCellStyleDefault UITableViewCellStyleVal ...
- 使用Spring整合javaMail发用邮件
1.导入javamail.jar 自行百度下载 2.使用模板发送邮件架包 freemarker.jar 3.Spring配置文件 以及架包这里就不需要说了吧,如果不明白的发我Email ...
- sqoop的命令行操作
- UVALive 7338 (树链剖分+线段树)
Problem Toll Management IV 题目大意 给一张n个点m条边的无向图,有边权.数据保证前n-1条边构成了一棵最小生成树. 要求对于每条边求出其边权上下最多浮动范围,使得最小生成树 ...
- javascript 中的 delete
那么,为什么我们能删除一个对象的属性: var x = { a: 1 }; delete x.a; // true x.a; // undefined 但却不能删除一个变量: var x = 1; d ...
- USB协议-USB设备的枚举过程
USB主机在检测到USB设备插入后,就要对设备进行枚举了.为什么要枚举?枚举就是从设备读取各种描述符信息,这样主机就可以根据这些信息来加载合适的驱动程序,从而知道设备是什么样的设备,如何进行通信等. ...
- js中Math.round、parseInt、Math.floor和Math.ceil小数取整总结
Math.round.parseInt.Math.floor和Math.ceil 都可以返回一个整数,具体的区别请看下面的总结. 一.Math.round 作用:四舍五入,返回参数+0.5后,向下取整 ...
- LintCode First Position of Target
找指定target的最左位置. class Solution { /** * @param nums: The integer array. * @param target: Target to fi ...
- 使用seajs封装js模块
//方法一:将函数绑定到原型上 define(function(require, exports, module) { $.fn.tab = function(option, callback) { ...