| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3363 人关注过本帖
标题:新手求教一问题(母牛问题)
只看楼主 加入收藏
一般情况
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-7-30
收藏
 问题点数:0 回复次数:11 
新手求教一问题(母牛问题)

一头小母牛,以出生起第四个年头开始每年生一头母牛,第N年有多少头母牛?

我想了好久一只想不出来合适的算法……,请大家帮帮我

[此贴子已经被kai于2004-07-30 23:50:37编辑过]

搜索更多相关主题的帖子: 母牛 
2004-07-30 15:50
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
收藏
得分:0 

母牛问题啊,给你个C的

#include <stdio.h> void fcow(int n,int *s,int k) { int i,bc=0,sc0=0,sc1=1,sc2=0; /*bc是大母牛,sc0是刚出生的小母牛,sc1是1岁小母牛,sc2是2岁*/ for(i=1;i<n;i++) { sc0=bc; bc+=sc2; sc2=sc1; sc1=sc0; } s[k]=bc+sc2+sc1; } void main () { int n,i,s[50],k=0; while(scanf("%d",&n)!=EOF) fcow(n,s,k++); for(i=0;i<k;i++) printf("%d\n",s[i]); }


我的主页 http://www.
2004-07-30 18:50
wonderfulday
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2004-7-28
收藏
得分:0 

#include<iostream.h> main() { int year,cow[100],i=0,sum=0;

for(i=0;i<100;i++)cow[i]=0; cin>>year; cow[0]=1; cow[1]=year-3; //cow1 born cow from year-3

for(i=1;i<year-3-3+1;i++){cow[i+1]=i;}

for(i=0;i<year;i++)sum=sum+cow[i];

cout<<sum;

}


2004-07-30 23:25
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

// My C++ solution

#include <iostream> using namespace std;

class cow { private: int birthyear; int age; bool geboren; public: cow(){ birthyear = 0; age = 0; geboren = false;} cow(int year, int theage = 1) { birthyear = year; age = theage; geboren = true; } void growup(int year) //year : the actual year { age = year - birthyear + 1; } bool bearing() { if(age>=4) return true; else return false; } bool isgeboren(){return geboren;} };

class cattle_farm { private: int cow_num; enum{ MAX = 50000}; enum{ begin = 1}; int end; cow thecows[MAX]; public: cattle_farm(){ cow_num = 1; thecows[0] = cow(begin);} void propagate() { cout<<"Please set N for the years\n"; cout<<"N = "; cin>>end; for(int i = begin; i<=end; i++) { int j = 0; do { thecows[j].growup(i); if(thecows[j].bearing()) { cow_num++; thecows[cow_num-1] = cow(i); } j++; }while(thecows[j].isgeboren()); } } void show_cow_nuw() { cout<<"after "<<end<<" years there are "<<cow_num<<" in this cattle farm.\n"; } };

int main() { cattle_farm mycattle_farm; mycattle_farm.propagate(); mycattle_farm.show_cow_nuw(); return 0; }


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-07-30 23:39
wonderfulday
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2004-7-28
收藏
得分:0 

类我还是不很了解~~~~谢谢kai了


2004-07-31 00:02
一般情况
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-7-30
收藏
得分:0 
可是我现在就学了 基本数据类型与输入输出 表达式与语句 过程化语句 就出来个这个题目,kai老师写的我看不明白。。能不能帮我用简单点的知识解决一下,或者说说算法……
2004-07-31 15:55
catcai
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2004-7-28
收藏
得分:0 

给你关键的算法

递归函数:f(n)=f(n-1)+f(n-3)

非递归解法:设几个中间变量,temp=a+s;a=b;b=s;s=temp(s即所求)

2004-07-31 21:13
alixnuaa
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2004-10-10
收藏
得分:0 

应该就是a[n]={n,n-3,n-2,...........2,1},然后 求和:3+1+2+3+4+.....+n-5;

#include <iostream> using namespace std; int main() { int n,sum=0; cin>>n; int array[n]; array[0]=n; for(int i=1;i<n-2;i++) { array[i]=n-i-2;} int i; for (i=0;i<n-2;i++) {cout<<array[i]<<" "; } if (n>=5){ for(i=1;i<n-4;i++) { sum+=i; } sum+=3;} else if(n==4) sum=2; else sum=1; cout<<"\n"<<sum; system("pause"); return 0; }

2004-10-14 19:29
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 

我个人 认为 做这种题目数学 功底要好!!

这个 题目 其实就是一个 菲波那锲数列,用 递归 的话,很快就出来了!(也就 20行左右)


2004-10-14 21:17
狂啃基础
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-10-13
收藏
得分:0 

怎么那么多人问母牛问题的啊?

#include <iostream.h>

void main() { int n; long a=1, b=1, c=1, temp; cout <<"please input a value:\n"; cin >>n;

for(int i=4; i<=n; i++){ temp=a+c; a=b; b=c; c=temp; } cout << c <<endl; }


2004-10-14 22:33
快速回复:新手求教一问题(母牛问题)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028413 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved