}
}
该程序是一个双重循环,外层为while循环,内层为for循环,每执行一遍外循环体可能显示出一个10至199之间的一个素数。
该程序的功能是:
随机产生出10个10至199之间的素数并显示出来。
5.应用举例
例1.编一程序求出满足不等式
的最小n值。
分析:
此题不等式的左边是一个和式,该和式中的数据项个数是未知的,也正是要求出的。
对于和式中的每个数据项,对应的通式为
,i=1,2,...n,所以可采用循环累加的方法来计算出不等式的和。
设循环变量为i,它应从1开始取值,每次增加1,直到不等式的值不小于5为止,此时的i值就是所求的n。
设累加变量为s,在循环体内应把1/i的值累加到s上。
根据以上分析,采用while循环编写出程序如下:
#include
voidmain()
{
inti=0;doubles=0;
while(s<5)s+=double
(1)/++i;
cout<<"n="<
}
若采用for循环编写程序,则如下所示:
#include
voidmain()
{
inti;doubles=0;
for(i=1;s<5;i++)s+=1.0/i;
cout<<"n="<//注意:
此i-1的值为所求的n值
}
该程序的输出结果应为:
n=83
例2.有一家企业,若年产值平均增长率分别按2%,4%,6%,...,20%计算,问分别需要经过多少年才能够使年产值翻一番。
分析:
假定把当年的年产值定为1个单位,则翻一番后就应变为2。
设年产值平均增长率为x,经过的年数为n,n年后的产值为y,则求y的计算公式为:
y=(1+x)n
由题意可知,当y正好等于2或刚好超过2时所得到的n值就是按年平均增长率为x,达到翻一番所需要的年数。
要根据x值求出y达到2之后的n值,应采用循环来解决。
设循环变量为i,它从1开始取值,每次增加1,每次向累乘变量y(它的初值应为1)乘上1+x的值,当y<2成立时继续下一次循环,直到y≥2为止,此时的i值就是所求的年数。
根据题目要求,x不是取一次值,而是取多次值。
对于x的每一次取值,都需要求出对应的n值。
由于x的取值是有规律的,它从0.02开始到0.20结束,每次增加0.02,所以可使用x作为for循环的循环变量,控制循环体的循环执行的次数,每次循环求出x值所对应的n值。
根据分析编写出程序如下:
#include