• 牛年求牛


    今天在网上见到这么一道题,用任何语言实现都行。

    题目为:有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛?

     

    玉丰补充: 此题有一个模糊的地方,就是牛的年龄问题,可以这样理解,从小牛出生的那一年开始计算,三年后就可以生小牛了,其数据如下:

    1-3 A
    4 A AB
    5 A AB AC
    6 A AB AC AD
    7 A AB AC AD AE ABB(注意,今年AB已经4岁了,所以生了一只ABB)

    AB 是 A 在第4年生的,到第7年时,它4岁了,所以也生了一只ABB

     

     

     1 #include <stdio.h>
     2 //隔几年生小牛
     3 #define N 3
     4 #define M 14
     5 long ox_count = 1;
     6 int main(){
     7     int i, n =69;
     8     printf("input a number(max 69)\n");
     9     scanf("%d",&n);
    10  
    11     long nums[101];
    12     for(i = 1 ; i<= n;i ++){
    13         if(i <= N ){
    14             nums[i] = 1;continue;
    15         }  
    16         if(i >= 20){
    17             //第二十年,我们伟大的母牛去了
    18             if(i == 20){
    19                 nums[i] = nums[i - N] + nums[i -1] - 1 - nums[i -M];
    20             }  
    21             //第20到第20+N年间,没出生的牛,于是也没有死去的牛
    22             if(i > 20 && i <= 20 + N){
    23                 nums[i] = nums[i - N] + nums[i -1]  - nums[i -M];
    24             }  
    25             //第20+N年后出生的牛数,要减去20年前的牛数.
    26             if(i > 20 + N){
    27                 nums[i] = nums[i - N] + nums[i -1] - nums[i - 20 - N] - nums[i - M];
    28             }  
    29         }else{
    30             if(i < 15){
    31                 //还没到20年后,所以没有死去的牛
    32                 nums[i] = nums[i - N] + nums[i -1] ;
    33             }else{
    34                 nums[i] = nums[i - N] + nums[i -1] -nums[i - M];
    35             }  
    36         }  
    37         printf("%d: %ld\n" ,i, nums[i]);
    38         ox_count = nums[i];
    39     }  
    40     printf("total: %ld\n" , ox_count);
    41 }
    42  
    43 </stdio.h>

    来源:http://www.cnblogs.com/amboyna/archive/2009/12/14/1624092.html


    微信公众号: 猿人谷
    如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
    如果您希望与我交流互动,欢迎关注微信公众号
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

  • 相关阅读:
    Docker私有仓库
    Swarm配置文件管理
    Docker Swarm高可用性
    Docker集群管理Swarm数据持久化
    Swarm使用原生的overlay网络
    Docker Swarm集群部署
    Docker管理工具-Swarm
    Docker多主机网络 OpenvSwitch
    Docker网络 Weave
    Docker Macvlan
  • 原文地址:https://www.cnblogs.com/heyonggang/p/3066883.html
Copyright © 2020-2023  润新知