编程题
古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
#include <iostream> using namespace std; int main() { unsigned long long a = 1, b = 1; // 前两个月的初始值 unsigned long long c; for (int month = 1; month <= 40; month++) { if (month <= 2) { cout << "第" << month << "个月:" << a << "对" << endl; } else { c = a + b; cout << "第" << month << "个月:" << c << "对" << endl; a = b; // 更新前两个月的值 b = c; } } return 0; }
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main(){
for(int i=1;i<=40;i++){ int sum=2;
int initial_num=2;
if((i%2-1)==0){
for(int j=0;j<(i+1)/2;j++)
sum*=initial_sum;
printf("第%d个月:%d",i,sum);
}
if(i%2==0){
for(int j=0;j<i/2;j++)
return 0;
1
fibonacci数列
这兔子真能生
#include<stdio.h>
int main() { int n1 = 2, n2 = 2, i; //规律:后一项等于前两项和(n>=3) for (i = 1; i <= 20; i++) { printf("%d\t%d\t", n1, n2);//每次输出两个月的 if (i % 6 == 0) printf("\n");//一年一换行 n1 = n1 + n2; n2 = n1 + n2; }
return 0; }
#include<iostream>
using namespace std;
void shine(long prior,long next)
{
cout.width(16);
cout<<prior;
cout<<next;
static int depth=1; //递归的深度,也是输出的次数
if(depth==20) //每次输出两个数 20次就会输出40个数
depth=0;
return;
if(depth%2==0) //每两次进行一次换行
cout<<endl;
depth++;
shine(prior+next,next+prior+next);
int main()
shine(1,1);
程序分析:兔子的规律为数列1,1,...
用户登录可进行刷题及查看答案
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....,即下个月是上两个月之和(从第三个月开始)。
#include<stdio.h> int main() { int f1=1,f2=1,i; for(i=1;i<=20;i++) { printf("%12d%12d",f1,f2); if(i%2==0) printf("\n"); f1=f1+f2; f2=f1+f2; } return 0; }
登录后提交答案