首页 上页 下页 节 末页 结束
第 5章 循环控制
,C语言程序设计,
课程讲义
2006年 4月
首页 上页 下页 节 末页 结束
上一章节课程回顾
关系运算符、逻辑运算符及其表达式
关系运算符及逻辑运算符的优先次序
逻辑运算的值
if语句的三种形式
if语句的嵌套
条件运算符和条件表达式
switch语句

首页 上页 下页 节 末页 结束
5.1 概述
5.2 goto语句以及用 goto语句构成循环
5.3 while语句
5.4 for语句
5.5 do-while语句
5.8 循环的嵌套
5.6 几种循环的比较
5.7 break和 continue语句
第 5章 循环程序设计
5.9 循环程序举例

首页 上页 下页 节 末页 结束
1,掌握 for循环和 do/while循环结构的运用。
2,掌握 switch多分选择结构
3,理解 break 和 contiue在程序控制中的作用。
4,掌握逻辑运算符的使用
1.While 语句
2.do while 语句
3.for 语句
4.循环应用举例
本章主要
内容
5.1 概述

首页 上页 下页 节 末页 结束
循环结构是程序中一种很重要的结构。其特点
是,在给定条件成立时,反复执行某程序段,直
到条件不成立为止。给定的条件称为循环条件,
反复执行的程序段称为循环体。C语言提供了多
种循环语句,可以组成各种不同形式的循环结构。
1、用 goto语句和 if语句构成循环;
2、用 while语句;
3、用 do-while语句;
4、用 for语句;
5.1 概述

首页 上页 下页 节 末页 结束
什么是循环?
为什么要使用循环?
?循环是有规律的重复操作。 将复杂问题 分解 为
简单的操作过程,程序只对简单过程描述,这些
过程的多次 重复 就可完成对问题的求解。重复的
频繁性决定了循环在程序设计中必不可少!
1、循环问题
?
?
?
100
1n
y n
问题 1,
问题 2,求学生平均成绩 分数相加后除以课 程门 数
做 99次加法
问题 3,找出数 x中能同时被 3和 7整除的数 找数
5.1 概述
循环的本质:
不断地重复
某种动作

首页 上页 下页 节 末页 结束
对这类问题,我们可以找出其中的三大关键是,
1、从什么地方开始;
2、什么时候结束;
3、反复做什么。
问题分解
循环控制 循环的解决途径
我们可以总结为,
初始值 循环做的条件 循环做的事情
循环体:通常我们把循环做的事情称为循环体。
5.1 概述
首页 上页 下页 节 末页 结束
? if--goto 循环
? while循环
? for循环
? do while循环
先判断后循环
(当型循环)
先循环后判断
(直到型循环)
?特点,
?难点,
C提供四种循环控制,
5.1 概述

首页 上页 下页 节 末页 结束
2、循环结构 循环结构有两种形式,?当型循环结构
?直到型循环结构
循环体
N 条件
Y
当型循环 直到型循环
条件
N
Y
循环体
先判断后循
环 先循环后判断
入口
出口
循环体中是一
个过程,该过
程的复杂程度
取决于问题及
对问题的分解
5.1 概述

首页 上页 下页 节 末页 结束
5.2 goto语句以及用 goto语句构成循环
其中标号是一个有效的标识符,这个标识符加上一个,:”
一起出现在函数内某处,执行 goto语句后,程序将跳转到该标
号处并执行其后的语句。另外标号必须与 goto语句同处于一
个函数中,但可以不在一个循环层中。通常 goto语句与 if条件
语句连用,当满足某一条件时,程序跳到标号处运行。
goto语句通常不用,主要因为它将使程序层次不清,且不易读,
但在多层嵌套退出时,用 goto语句则比较合理。
goto语句是一种无条件转移语句,与 BASIC中的
goto语句相似。 goto 语句的使用格式为,
goto 语句标号;
1,goto语句格式

首页 上页 下页 节 末页 结束
2,goto循环的执行过程
循环体
N 条件
Y
?goto循环
条件 循环 次数
? Y 执行 1
Y 执行 3
Y 执行 2
N 结束

循环体
?? 3

在循环入口处判断
当条件为真时执行循环

5.2 goto语句以及用 goto语句构成循环
首页 上页 下页 节 末页 结束
S=1+2+3+…+100
0
S
1
2
100
S+1 S
S+2 S
S+100 S
作 100
次加法
S+n S
累加器
计数器


5.2 goto语句以及用 goto语句构成循环
首页 上页 下页 节 末页 结束
main()
{ int n,sum=0;
n=1;
loop,if(n<=100)
{sum=sum+n;
n++;
goto loop;}
printf("%d\n",sum);
}
【 例 6.1】 用 goto语句和 if语句构成循环,求
5.2 goto语句以及用 goto语句构成循环
首页 上页 下页 节 末页 结束
5.3 while语句
初始表达式 ;
while(条件表达式 )
{语句 ;
循环表达式 ;
}
1,while语句格式
首页 上页 下页 节 末页 结束
2,while循环的执行过程
循环体
N 条件
Y
?while循环
条件 循环 次数
? Y 执行 1
Y 执行 3
Y 执行 2
N 结束

循环体
?? 3

在循环入口处判断
当条件为真时执行循环
5.3 while语句
首页 上页 下页 节 末页 结束
3、用传统流程图和 N-S结构流程图表示算法,见图,
用 while语句求。 S=
5.3 while语句
⑴,N-S流程图 ⑵,传统流程图
【 例 6.2】
首页 上页 下页 节 末页 结束
main()
{ int i,sum=0;
i=1;
while(i<=100)
{ sum=sum+i;
i++; }
printf("%d\n",sum);
}
#include <stdio.h>
main(){
int n=0;
printf("input a string:\n");
while(getchar()!='\n') n++;
printf("%d",n); }
【 例 6.2】 【 例 6.3】
统计从键盘输入一行字符的个数。 S=
5.3 while语句 程序中的循环条件为
getchar()!='\n',其意义是,
只要从键盘输入的字符不是
回车就继续循环。
循环体 n++完成对输入字符个数计
数。从而程序实现了对输入一行
字符的字符个数计数。
首页 上页 下页 节 末页 结束
⑴,while语句中的表达式一般是关系表达或逻辑表达式,
只要表达式的值为真 (非 0)即可继续循环。
⑵, 循环体如包括有一个以
上的语句,则必须用 {}括起
来,组成复合语句。
5.3 while语句
4、使用 while语句应注意以下几点,
main(){
int a=0,n;
printf("\n input n,");
scanf("%d",&n);
while (n--)
printf("%d ",a++*2); }
【 例 6.4】 本例程序将执行 n次循环,每执行一次,n值减 1。循环体输出
表达式 a++*2的值。该表达式等
效于 (a*2; a++)。
首页 上页 下页 节 末页 结束
5.4 for语句
1,for语句的格式
for ( 表达式 1;表达式 2;表达式 3) 语句 ;
2、各表达式说明
非 0时执行循环体
每次执行完循
环体后求解
可以是复合语句
循环前先求解 ?、计算初始表达式的值。
?、判断条件表达式,若条件表达式的值 ?0,
则执行语句体,转第 ?步 ; 若 条件表
达式的值 =0,则跳出循环体。
?、计算循环表达式。
?、转到第 ?步。
首页 上页 下页 节 末页 结束
3,for循环的执行过程
循环体
N 条件
Y
for循环 执行过程演示
条件 循环 次数
? Y 执行 1
Y 执行 3
Y 执行 2
N 结束

循环体
?? 3

在循环入口处判断
当条件为真时执行循环
5.4 for语句
首页 上页 下页 节 末页 结束
5.4 for语句
4、说明,
循环变量赋初值总是一个赋值语句,它用来给循环控制变量赋
初值 ; 循环条件是一个关系表达式,它决定什么时候退出循环;
循环变量增量,定义循环控制变量每循环一次后 按什
么方式变化。这三个部分之间用“;”分开。
for语句最简单的应用形式也是最容易理解的形式如下,
for(循环变量赋初值;循环条件;循环变量增量 ) 语句
例如,
for(i=1; i<=100; i++)sum=sum+i;
先给 i赋初值 1,判断 i是否小于等于 100,若是则执行语句,之后
值增加 1。再重新判断,直到条件为假,即 i>100时,结束循环。
首页 上页 下页 节 末页 结束
5.4 for语句
5、几点注意
3).省略了“表达式 2(循环条件 )”,则不做其它处理时便成为
死循环。
例如,for(i=1;;i++)sum=sum+i;
相当于,i=1;
while(1)
{sum=sum+i;
i++;}
1),for循环中的“表达式 1(循环变量赋初值)”、“表达式
2(循环条件 )”和“表达式 3(循环变量增量 )”都是选择项,即可
以缺省,但“;”不能缺省。
2),省略了“表达式 1(循环变量赋初值)”,表示不对循环
控制变量赋初值。
首页 上页 下页 节 末页 结束
5.4 for语句
4),省略了“表达式 3(循环变量增量 )”,则不对循环控制变量进
行操作,这时可在语句体中加入修改循环控制变量的语句。
例如,for(i=1;i<=100;)
{ sum=sum+i;
i++; }
5),省略了“表达式 1(循环变量赋初值)”和“表达式 3(循
环变量增量 )”。
例如,for(;i<=100;)
{ sum=sum+i;
i++; }
相当于,
while(i<=100)
{ sum=sum+i;
i++; }
首页 上页 下页 节 末页 结束
5.4 for语句
6),3个表达式都可以省略。
例如,for(;; ) 语句
相当于,while(1) 语句
7),表达式 1可以是设置循环变量的初值的赋值表达式,也可
以是其他表达式。
例如,for(sum=0;i<=100;i++)sum=sum+i;
8),表达式 1和表达式 3可以是一个简单表达式也可以是逗号
表达式。
for(sum=0,i=1;i<=100;i++)sum=sum+i;
或,for(i=0,j=100;i<=100;i++,j--)k=i+j;
9),表达式 2一般是关系表达式或逻辑表达式,但也可是数值
表达式或字符表达式,只要其值非零,就执行循环体。
例如,for(i=0;(c=getchar())!=’\n’;i+=c);
又如,for(;(c=getchar())!=’\n’;)
printf(“%c”,c);
首页 上页 下页 节 末页 结束
这个循环与 while循环的不同在于,它先执行
循环中的语句,然后再判断表达式是否为真,如果
为真则继续循环;如果为假,则终止循环。因此,
do-while循环至少要执行一次循环语句。其执行
过程可用下图表示。
5.5 do-while语句
1,do-while语句的格式
一般形式为,
do
语句
while(表达式 );
首页 上页 下页 节 末页 结束
?直到型循环
在循环出口处判断,当条件
为真时继续执行循环,直到
条件为假时为止。
条件
N
Y
循环体
条件 循环 次数
执行 1
Y 执行 3
Y 执行 2
N 结束
3

条件
循环体
条件
Y 执行 4
4

5.5 do-while语句
2、直到型循环的执行过程
特点:循环至少执
行一次
首页 上页 下页 节 末页 结束
5.5 do-while语句
3,do-while语句流程图
⑴,传统流程图 ⑵,N-S流程图
它先执行循环中的语句,然后再判断表达式是否为真,如果为真
则继续循环;如果为假,则终止循环。因此,do-while循环至
少要执行一次循环语句。其执行过程可用下图表示。
首页 上页 下页 节 末页 结束
5.5 do-while语句
用传统流程图和 N-S结构流程图表示算法,见图,
【 例 6.5】 S= 用 do-while语句求
main()
{ int i,sum=0;
i=1;
do {
sum=sum+i;
i++;
}
while(i<=100)
printf("%d\n",sum);
}
首页 上页 下页 节 末页 结束
5.5 do-while语句
main()
{
int sum=0,i;
scanf(“%d”,&i);
while(i<=10)
{ sum=sum+i;
i++;
}
printf(“sum=%d”,sum);
}
使用 while语句求 i的累加和
4,do-while与 while的比较
当输入的 i小于等于 10
时,输出 sum的值,
当输入的 i大于 10时,
则 sum=0
【 例 6.6】
首页 上页 下页 节 末页 结束
5.5 do-while语句
( 2) main()
{int sum=0,i;
scanf(“%d”,&i);
do
{sum=sum+i;
i++;
}
while(i<=10);
printf(“sum=%d”,sum);
}
使用 do-while语句求 i的累加和
当输入的 i小于等于
10时,输出 sum的
值,当输入的 i大于
10时,则 sum=i
【 例 6.7】
首页 上页 下页 节 末页 结束
1、四种循环都可以用来处理同一个问题,一般可以
互相代替。但一般不提倡用 goto型循环。
2,while和 do-while循环,循环体中应包括使循环趋
于结束的语句。 for语句功能最强。
3、用 while和 do-while循环时,循环变量初始化的操
作应在 while和 do-while语句之前完成,而 for语句可
以在表达式 1中实现循环变量的初始化。
5.6 几种循环的比较
首页 上页 下页 节 末页 结束
5.6 几种循环的比较
4,while循环是先判断条件,如果条件为真则执
行循环体;而 do-While 循环是先执行循环体,
然后才判断条件。因此,while循环中的循环体
可能一次也不执行,而 do-While 循环中的循环
体则至少会执行一次。
5,while循环的 while后面没有分号,而 do-
While 循环的 while后面则有分号。
6,while循环和 do-while 循环可以相互替换。
7,while循环和 do-while 循环通常用于循环次数
不确定的情况,而 for通常用于已知循环次数的情
况。
首页 上页 下页 节 末页 结束
5.7 break和 continue语句
回忆
当 break用于开关语句 switch中时,可
使程序跳出 switch而执行 switch以后
的语句;如果没有 break语句,则将成为
一个死循环而无法退出。
当 break语句用于 do-while,for,while循环语句
中时,可使程序终止循环而执行循环后面的语句,
通常 break语句总是与 if语句联在一起。即满足条
件时便跳出循环。
break语句通常用在循环语句和开关语句中
首页 上页 下页 节 末页 结束
在循环过程中,执行了 break;语句后,则不管是
否达到循环的条件表达式所表达的结束条件,立
即中止循环,执行循环语句后面的语句。
1,break语句的格式
break;
2,break语句的功能
5.7 break和 continue语句
①, break语句对 if-else的条件语句不起作用。
②, 在多层循环中,一个 break语句只向外跳一层。
首页 上页 下页 节 末页 结束
Break语句使用的样式及流程图
while(表达式 1)
{ ……
if(表达式 2)break;
……
}
5.7 break和 continue语句
首页 上页 下页 节 末页 结束
5.7 break和 continue语句
以下循环只会执行 30次。
#include <stdio.h>
void main()
{ int i = 1;
while(i <= 1000)
{
if(i%30 == 0)
break;
i = i+1;
}
printf("%d",i);
}
程序中,条件表达式表达
的循环条件是,i < =1000”,
可以循环 10000次,但当 i =
30时,条件,i%30 == 0,
成立,则 break;语句被执
行。 break;语句执行后,
程序不再进行循环,而执
行循环后面的语句
printf("%d",i);,也就是说,
跳出了循环。
【 例 6.8】
首页 上页 下页 节 末页 结束
5.7 break和 continue语句
3,continue语句的格式
continue;
4,continue语句的功能
5,continue语句的注意事项
⑴, 在 whlie和 do—whlie语句中,执行 continue语句后则
立即执行对 whlie括号中 ()的条件表达式进行判断;
⑵, 对 for语句,continue语句在不执行其后的语句后,先
求解“表达式 3”,再求解“表达式 2”。
不再执行循环体中 continue语句之后的语句,
立即转入对循环条件的判断。
首页 上页 下页 节 末页 结束
continue语句使用的样式及流程图
while(表达式 1)
{ ……
if(表达式 2)continue;
……
}
5.7 break和 continue语句
首页 上页 下页 节 末页 结束
【 例 6.9】 使用 continue语句的例子。程序将输出 0到 30之
间的全部偶数。
#include <stdio.h>
void main()
{ int i = 0;
while(i < 30)
{
i = i+1;
if(i%2 != 0)
continue;
printf("%d\n",i);
}
}
5.7 break和 continue语句
在循环时跳
过奇数,只
输出偶数。
首页 上页 下页 节 末页 结束
例 1,while ( )
{…
while ( )
{…
}
}
for循环
while 循环
do/while 循环
三种结构可以互相嵌套
5.8 循环的嵌套
例 2,for (; <条件表达式 >;)
{…
while ( )
{ }
do
{ }
while ( );

} 为正确的嵌套。
首页 上页 下页 节 末页 结束
这种在一个循环体内又包含循环结构称为循环
嵌套。内层循环体中再包含新循环结构称为多重
循环嵌套。又例如,
例 3,for( ; ; )
{

while()
{
}

}
例 4,do {

for( ; ; )
{

}

}while();
5.8 循环的嵌套
首页 上页 下页 节 末页 结束
但,
while ( )
{ …
while ( )
{
}…
}
for (; ; )
{ for (; ; )
{…
}
}
不能理解为正确的形式。要注意语句的包含关系。
5.8 循环的嵌套
首页 上页 下页 节 末页 结束


外循环初始条件
内循环初始条件
内循环体
外循环条件

内循环条件 假
内循环循环条件
外循环循
环条件
循环结束
二重
循环
嵌套
结构
执行
流程
首页 上页 下页 节 末页 结束
例 5-13:输出图形,
*
***
*****
******* 编程分析,
采用双重循环,一行一行输出。
每一行输出步骤:一般 3步。
1)光标定位
3)每输完一行光标换行 (\n)
2)输出图形。
例如本题:共 4行,若行号用 k表示,
则每一行有 2*k-1个 *号。
首页 上页 下页 节 末页 结束
#include " stdio.h "
void main()
{ int k1,k2;
for(k1=1;k1<=4;k1++)
{ putchar(?\t?);
for(k2=1;k2<=k1;k2++)
putchar(?\b?);
for(k2=1;k2<=k1*2-1;k2++)
putchar(?*?);
putchar(?\n?);
}
}
定位(还可
以用空格的
方法)
输出
首页 上页 下页 节 末页 结束
5.8 循环的嵌套
打印由,*”号组成的三角形。
main()
{int k=1,j;
while(k<=5)
{j=1;
while(j<=k)
{ printf(“*”);
j++;}
printf(“\n”);
k++;}}
* * *
* * * * * * *
* * * * *
输出结果为,
多重循环的执行过程为,
外循环跨一步,内循环转一圈
k=1时,j=1 输出 1个 *号
k=2时,j=1~2 输出 2个 *号
k=3时,j=1~3 输出 3个 *号
k=4时,j=1~4 输出 4个 *号
k=5时,j=1~5 输出 5个 *号
【 例 6.10】
首页 上页 下页 节 末页 结束
#include,math.h”
main()
{int m,k,i,n=0;
for(m=3;m<100;m+=2)
{if(n%10==0)printf(“\n”);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
{printf(“%d,,m);n++;}}
}
思路,求 3至 100
间的全部素数。
( 素数只能被 1和
它本身整除。 判
断 m是否是素数的
方法,当 m能被 2
到 m的平方根之间
的任何一个整数
整除时,m就不
是素数;否则就
是。)
5.9 循环程序举例
【 例 6.11】
首页 上页 下页 节 末页 结束
5.9 循环程序举例
#include,stdio.h”
main()
{int i,data=0;
char c;
for(i=0;i<4;i++)
{while(1)
{c=getchar();
if(c>=?0?&&c<=?9?)
break;}
data=data*10+c-?0?;}
printf(“data=%d\n”,data);}
【 例 6.12】 输入 4个数字字符,并把其转换为 4位
十进制整数后显示出来。
输入是数字字符就结
束循环
把输入的数字字符
变成数字再组成一
个 4位数
首页 上页 下页 节 末页 结束
5.9 循环程序举例
#include,stdio.h”
main()
{int sum=0;
char ch;
while(1)
{ch=getchar();
if(ch==?*?)break;
if(ch>=?A?&&ch<=?Z?)
sum++; }
printf(“sum=%d”,sum);}
编程,从键盘上连
续输入字符,并统
计其中大写字母的
个数,直到输入,*”
字符结束。
出口:当输入的字符是
,*”号时,退出循环
是大写字母就计数
【 6.13】
首页 上页 下页 节 末页 结束
5.9 循环程序举例
良好的源程序书写习惯 ──注释
在 C语言中,循环结构由循环语句 for,while和 do...while来实现。
作为注释,应在它们的前面说明其功能,在循环条件判断语句行的
后面,说明循环继续条件的含义,如下所示。
1) for语句
for(变量初始化 ;循环条件 ;变量增值 ) /*循环继续条件的含义 */
{ …… }
2) while语句
while(循环条件 ) /*循环继续条件的含义 */
{ …… }
3) do...while语句
do { …… }
while(循环条件 ); /*循环继续条件的含义 */
如果循环嵌套,还应说明每层循环各控制什么。
首页 上页 下页 节 末页 结束
5.9 循环程序举例
main()
{ long int f1=1,f2=1; /*定义并初始化数列的头 2个数 */
int i=1; /*定义并初始化循环控制变量 i*/
for( ; i<=20; i++ ) /*1组 2个,20组 40个数 */
{ printf(“%15ld%15ld”,f1,f2); /*输出当前的 2个数 */
if(i%2==0) printf(“\n”); /*输出 2次( 4个数),换行 */
f1 += f2; f2 += f1; /*计算下 2个数 */
}
}
【 6.14】 求 Fibonacci数列的前 40个数。该数列的生成方
法为,F1=1,F2=1,Fn=Fn-1+Fn-2( n>=3),即从第 3
个数开始,每个数等于前 2个数之和。
首页 上页 下页 节 末页 结束
main()
{ int i=0;
char c;
while(1) /*设置循环 */
{ c='\0'; /*变量赋初值 */
while(c!=13&&c!=27) /*键盘接收字符直到按回车或 Esc键 */
{
c=getch();
printf("%c\n",c);
}
if(c==27)
break; /*判断若按 Esc键则退出循环 */
i++;
printf("The No,is %d\n",i);
}
printf("The end");
}
5.9 循环程序举例
【 6.15】
首页 上页 下页 节 末页 结束
程序的循环结构是控制结构的的重大要素,也是编程的
基础。我们以顺序执行结构为基本框架,通过选择控制结
构,可以改变程序的执行路线,而通过循环结构,则可以
让程序反复做,直到满意为止。一个程序中三种结构可以
不同时存在,但至少存在顺序执行结构。因此如何在顺序
执行结构在基础上,采用合适的循环控制,实现程序的意
图,即设计合适的算法,是程序设计的重点。而要能够设
计算法,必须掌握程序的基本框架,正确运用循环语句,
掌握其格式和执行流程。即掌握,
1,while,do_while和 for三种循环结构的构成
形式、运行流程;
2,break,continue语句的作用。
本章小结
首页 上页 下页 节 末页 结束
在与 switch语句配套的 case语句中所使用的表达式 _____。
A)只能是常量
B)可以是变量或常量
C)只能是常量或常量表达式
D)无论是常量还是变量,只要在执行时已经有确定的值
就行
本题考核了 case语句的规定。正确答案是 C。
课堂同步,做做与练练
【 练 5.1】
试题分析
选择正确的选项,
首页 上页 下页 节 末页 结束
课堂同步,做做与练练
【 练 5.2】
试题分析
if语句中用来作为判断条件的表达式为 _______。
A)逻辑表达式
B)关系表达式
C)算术表达式
D)以上三种表达式
if语句中表达式作为分支的判断条件,判断为“真”还是“假”
的依据是表达式的值,0为真、非 0为假。正确答案是 D。
选择正确的选项,
首页 上页 下页 节 末页 结束
课堂同步,做做与练练
【 练 5.3】
试题分析
#include <stdio.h>
void main()
{ float fprice = 0;
printf(“Please input price:\n”);
scanf(“%f”,&fprice);
if (fprice = 300) printf(“Buy it !”); }
分析下面程序中的错误,
这个程序无论输入什么价格,都会输出,Buy it !”。其错误
在 if语句中,fprice = 300进行的是赋值运算,而不是想要的
比较相等的关系运算。
首页 上页 下页 节 末页 结束
课堂同步,做做与练练
【 练 5.4】
试题分析
#include <stdio.h>
void main()
{ int result[10]={0},iindex=0;
while (iindex < 9)
{ result[iindex]=20;
printf("%d",result[iindex]); }
}
这个程序是一个死循环,程序将一直不停地在屏幕上输出
20。解决的办法是在循环体内增加语句,改变循环变量
iindex的值,使其最后达到条件为真。
分析下面程序中的错误,
首页 上页 下页 节 末页 结束
课堂同步,课后练习与作业
1、输入两个正整数 m和 n,求其最大公约数和
最小公倍数。
2、输入一行字符,分别统计出其中英文字母、空格、数字
和其他字符的个数。
3、打印出所有 "水仙花数 ",所谓 "水仙花数 "是指一个三位
数,其各位数字立方和等于该本身。
4、有一分数序列,2/1,3/2,5/3,8/5,13/8,21/13…
求出这个数列的前 20项之和。
5、一球从 100米高度自由下落,每次落地后返回原高度的
一半,再落下。求它在第 10次落地时共经过多少米?第 10
次反弹多高?