兔子生崽——C与C++实现

题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少对?(输出前40个月即可)
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21…,即下个月是上两个月之和(从第三个月开始)。
C实现:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int Fun2(int number,int * array)
{
array[0] = 1;
array[1] = 1;
for (int i = 2; i < number; i++)
{
array[i] = array[i - 1] + array[i - 2];
}
}

int main() {
int array[40] = { 0 };
Fun2(40,array);
for (int i = 1; i <= 40; i++) {
printf("%12d\t", array[i - 1]);
if (i % 4 == 0) {
printf("\n");
}
}
return 0;
}
C运行结果:
兔子生崽——C与C++实现C++实现:
#define _CRT_SECURE_NO_WARNINGS
#include< iostream >
#include< iomanip >
using namespace std;

void Fun2(int number, int * array)
{
array[0] = 1;
array[1] = 1;
for (int i = 2; i < number; i++)
{
array[i] = array[i - 1] + array[i - 2];
}
}

int main() {
int array[40] = { 0 };
Fun2(40, array);
for (int i = 1; i <= 40; i++) {
cout << setw(12) << array[i - 1] << setw(2);
if (i % 4 == 0) {
cout << endl;
}
}
return 0;
}
C++运行结果:
兔子生崽——C与C++实现