一个有趣的算老鼠程序
生活随笔
收集整理的這篇文章主要介紹了
一个有趣的算老鼠程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
昨天一個同事在玩一個GameBoy小智力游戲時間碰到一數學題,于是拿出來大家討論。
題目是這樣的:說老鼠的生育能力驚人,一只老鼠假定它不需要交配的話一次能生20只小老鼠。隔2個月又能再生一窩。問現有一只老鼠剛生完一窩,十個月后這個老鼠窩里會有幾只老鼠?當然,這只是一道IQ題。真要算也有不下幾十種算法。用中學的方程式也很好解。然而我們是做程序的,能不能就寫一個程序來計算一下呢?當然沒有問題,以下就我寫的全部代碼: using?System;
using?System.Collections.Generic;
using?System.Text;
namespace?Test
{
???public?class?老鼠
????{
???????public?老鼠()
???????{??????????
???????}
???????public?老鼠(鼠窩?出生地)
???????{
???????????_我的鼠窩?=?出生地;
???????}
????????private?int?_月齡;
????????private?int?_生育能力;
????????private?鼠窩?_我的鼠窩;
????????public?int?月齡
????????{
????????????get
????????????{
????????????????return?_月齡;
????????????}
????????????set
????????????{
????????????????_月齡?=?value;
????????????}
????????}
????????public?int?生育能力
????????{
????????????get
????????????{
????????????????return?_生育能力;
????????????}
????????????set
????????????{
????????????????_生育能力?=?value;
????????????}
????????}
???????public?鼠窩?我的鼠窩
???????{
???????????get
???????????{
???????????????return?_我的鼠窩;
???????????}
???????????set
???????????{
???????????????_我的鼠窩?=?value;
???????????}
???????}
????????public?void?生小老鼠()
????????{
????????????for?(int?i?=?0;?i?<?_生育能力;?i++)
????????????{
????????????????老鼠?新生鼠?=?new?老鼠(_我的鼠窩);
????????????????新生鼠.月齡?=?0;
????????????????新生鼠.生育能力?=?_生育能力;
????????????????_我的鼠窩.添加新成員(新生鼠);
????????????}
????????}
????}
}
using?System;
using?System.Collections.Generic;
using?System.Text;
namespace?Test
{
????public?class?鼠窩
????{
????????public?鼠窩()
????????{
????????????_老鼠大家庭?=?new?List<老鼠>();
????????}
????????private?List<老鼠>??_老鼠大家庭;
????????public?List<老鼠>?老鼠大家庭
????????{
????????????get
????????????{
????????????????return?_老鼠大家庭;
????????????}??
????????}
????????public?int?老鼠數量
????????{
????????????get?
????????????{
????????????????return?_老鼠大家庭.Count;
????????????}????????????
????????}
????????public?void?添加新成員(老鼠?小鼠寶寶)
????????{
????????????_老鼠大家庭.Add(小鼠寶寶);
????????}
????????public?void?告別成員(老鼠?鼠列士)
????????{
????????????_老鼠大家庭.Remove(鼠列士);
????????}
????}
}
using?System;
using?System.Collections.Generic;
using?System.Text;
namespace?Test
{
????class?Program
????{
????????private?static?int?月份?=?3;
????????private?static?int?每次可生數量?=?1;
????????static?void?Main(string[]?args)
????????{
????????????鼠窩?鼠的樂園?=?new?鼠窩();
????????????老鼠?創始鼠?=?new?老鼠(鼠的樂園);
????????????創始鼠.月齡?=?2;
????????????創始鼠.生育能力?=?每次可生數量;
????????????鼠的樂園.添加新成員(創始鼠);
????????????for?(int?i?=?1;?i?<=?月份;?i++)
????????????{
????????????????for?(int?k?=?0;?k?<?鼠的樂園.老鼠數量;?k++)
????????????????{
????????????????????鼠的樂園.老鼠大家庭[k].月齡++;
????????????????}
????????????????for?(int?j?=?0;?j?<?鼠的樂園.老鼠數量;j++?)
????????????????{
????????????????????老鼠?阿鼠?=?鼠的樂園.老鼠大家庭[j];
????????????????????if?(阿鼠.月齡?>=?2)
????????????????????{
????????????????????????阿鼠.生小老鼠();
????????????????????}
????????????????}????????????????
????????????}
????????????System.Console.WriteLine(鼠的樂園.老鼠數量.ToString());
????????????System.Console.ReadLine();
????????}
????}
}
程序寫完,其實這樣的程序很普通,不就是個簡單的C#程序嗎?但我回想起我們現在的工作,寫了很多企業級應用一直在鼓吹面向對象卻連這樣的小程序都不如。后臺封裝好的數據訪問組件供我們調用,前臺代碼依舊那樣的老套,開發模式依然沒有創新。為此我們應該反省......
題目是這樣的:說老鼠的生育能力驚人,一只老鼠假定它不需要交配的話一次能生20只小老鼠。隔2個月又能再生一窩。問現有一只老鼠剛生完一窩,十個月后這個老鼠窩里會有幾只老鼠?當然,這只是一道IQ題。真要算也有不下幾十種算法。用中學的方程式也很好解。然而我們是做程序的,能不能就寫一個程序來計算一下呢?當然沒有問題,以下就我寫的全部代碼: using?System;
using?System.Collections.Generic;
using?System.Text;
namespace?Test
{
???public?class?老鼠
????{
???????public?老鼠()
???????{??????????
???????}
???????public?老鼠(鼠窩?出生地)
???????{
???????????_我的鼠窩?=?出生地;
???????}
????????private?int?_月齡;
????????private?int?_生育能力;
????????private?鼠窩?_我的鼠窩;
????????public?int?月齡
????????{
????????????get
????????????{
????????????????return?_月齡;
????????????}
????????????set
????????????{
????????????????_月齡?=?value;
????????????}
????????}
????????public?int?生育能力
????????{
????????????get
????????????{
????????????????return?_生育能力;
????????????}
????????????set
????????????{
????????????????_生育能力?=?value;
????????????}
????????}
???????public?鼠窩?我的鼠窩
???????{
???????????get
???????????{
???????????????return?_我的鼠窩;
???????????}
???????????set
???????????{
???????????????_我的鼠窩?=?value;
???????????}
???????}
????????public?void?生小老鼠()
????????{
????????????for?(int?i?=?0;?i?<?_生育能力;?i++)
????????????{
????????????????老鼠?新生鼠?=?new?老鼠(_我的鼠窩);
????????????????新生鼠.月齡?=?0;
????????????????新生鼠.生育能力?=?_生育能力;
????????????????_我的鼠窩.添加新成員(新生鼠);
????????????}
????????}
????}
}
using?System;
using?System.Collections.Generic;
using?System.Text;
namespace?Test
{
????public?class?鼠窩
????{
????????public?鼠窩()
????????{
????????????_老鼠大家庭?=?new?List<老鼠>();
????????}
????????private?List<老鼠>??_老鼠大家庭;
????????public?List<老鼠>?老鼠大家庭
????????{
????????????get
????????????{
????????????????return?_老鼠大家庭;
????????????}??
????????}
????????public?int?老鼠數量
????????{
????????????get?
????????????{
????????????????return?_老鼠大家庭.Count;
????????????}????????????
????????}
????????public?void?添加新成員(老鼠?小鼠寶寶)
????????{
????????????_老鼠大家庭.Add(小鼠寶寶);
????????}
????????public?void?告別成員(老鼠?鼠列士)
????????{
????????????_老鼠大家庭.Remove(鼠列士);
????????}
????}
}
using?System;
using?System.Collections.Generic;
using?System.Text;
namespace?Test
{
????class?Program
????{
????????private?static?int?月份?=?3;
????????private?static?int?每次可生數量?=?1;
????????static?void?Main(string[]?args)
????????{
????????????鼠窩?鼠的樂園?=?new?鼠窩();
????????????老鼠?創始鼠?=?new?老鼠(鼠的樂園);
????????????創始鼠.月齡?=?2;
????????????創始鼠.生育能力?=?每次可生數量;
????????????鼠的樂園.添加新成員(創始鼠);
????????????for?(int?i?=?1;?i?<=?月份;?i++)
????????????{
????????????????for?(int?k?=?0;?k?<?鼠的樂園.老鼠數量;?k++)
????????????????{
????????????????????鼠的樂園.老鼠大家庭[k].月齡++;
????????????????}
????????????????for?(int?j?=?0;?j?<?鼠的樂園.老鼠數量;j++?)
????????????????{
????????????????????老鼠?阿鼠?=?鼠的樂園.老鼠大家庭[j];
????????????????????if?(阿鼠.月齡?>=?2)
????????????????????{
????????????????????????阿鼠.生小老鼠();
????????????????????}
????????????????}????????????????
????????????}
????????????System.Console.WriteLine(鼠的樂園.老鼠數量.ToString());
????????????System.Console.ReadLine();
????????}
????}
}
程序寫完,其實這樣的程序很普通,不就是個簡單的C#程序嗎?但我回想起我們現在的工作,寫了很多企業級應用一直在鼓吹面向對象卻連這樣的小程序都不如。后臺封裝好的數據訪問組件供我們調用,前臺代碼依舊那樣的老套,開發模式依然沒有創新。為此我們應該反省......
轉載于:https://www.cnblogs.com/Nelson/archive/2007/06/17/786675.html
總結
以上是生活随笔為你收集整理的一个有趣的算老鼠程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET AJAX入门系列(9):
- 下一篇: 史蒂芬背单词