C++条件及循环语句的综合运用实例

2020-01-06 13:36:53王振洲

注意:不要把n定义为整型变量,否则在执行“t=s/n;”时,得到t的值为0(原因是两个整数相除)。

【例】求Fibonacci数列前40个数。

这个数列有如下特点:第1、2个数为1、1。从第3个数开始,每个数是其前面两个数之和。即:

 

 
  1. F1=1 (n=1)  F2=1 (n=2) 
  2. Fn=Fn-1+Fn-2(n≥3) 

这是一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假设所有兔子都不死,问每个月的兔子总数为多少?

根据给出的每月兔子总数的关系,可编写程序如下:

 

 
  1. #include <iostream>  #include <iomanip> 
  2. using namespace std;  int main( ) 
  3. {  long f1,f2; 
  4. int i;  f1=f2=1; 
  5. for(i=1;i<=20;i++)  { 
  6. cout<<setw(12)<<f1<<setw(12)<<f2;  //设备输出字段宽度为12,每次输出两个数 
  7. if(i%2==0) cout<<endl;  //每输出完4个数后换行,使每行输出4个数 
  8. f1=f1+f2;  //左边的f1代表第3个数,是第1?2个数之和 
  9. f2=f2+f1;  //左边的f2代表第4个数,是第2?3个数之和 
  10. }  return 0;