精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C#算法解決張老師的生日問題

開發 后端 算法
C#算法解決張老師的生日問題是如何實現的呢?本文就向你介紹C#算法解決張老師的生日問題具體的推理和代碼實現。

C#算法實現張老師的生日問題是怎么辦到的呢?首先我們來回顧下這個張老師的生日問題:

小明和小強都是張老師的學生,張老師的生日是M月N日, 2人都知道張老師的生是下列10組中的一天,張老師把M值告訴了小明,把N值告訴了小強, 張老師問他們知道他的生日是那一天嗎?

3月4日 3月5日 3月8日

6月4日 6月7日

9月1日 9月5日

12月1日 12月2日 12月8日

小明說:如果我不知道的話,小強肯定也不知道

小強說:本來我也不知道,但是現在我知道了

小明說:哦,那我也知道了

請根據以上對話推斷出張老師的生日是哪一天??

相信很多朋友都看過這個邏輯推理題吧,正確的答案是9月1日,推理過程我這里就不在再說了,Google一下一大堆,我要說的是用C#來得到這個推理結果^_^

C#算法解決張老師的生日問題推理過程如下:

1、分析所有生日集合,月份有{3,6,9,12},日有{4,5,8,7,1,5,2}。

2、小明說:“如果我不知道的話,小強肯定也不知道”,在日的集合中,{2,7}只出現一次。小明會這樣說,那就可以推出小明得到的M不是{6,12}。因為小強的N值是{2,7}的話,他可以直接得到張老師的生日,小明的M值就沒有意義了。而小明這樣說了,那就說明小明手中的M不是{6,12}。

3、小強說:“本來我也不知道,但是現在我知道了”。扣除M={6,12},剩下可能的為{{3,4},{3,5},{3,8},{9,1},{9,5}}小強說他知道了,由于小強只知道N,而他能肯定得到張老師的生日,所以他的N值一定是剩下集合中日數唯一的。這就可以排除{{3,5},{9,5}}了。

4、小明說:“哦,那我也知道了”。小明的是月份,剩下集合是{{3,4},{3,8},{9,1}},如果小明的M是3,那就有兩個日期可以選擇,不能確定生日。既然小明能確定張老師的生日,那小明手中的M就是9。

所以張老師的生日是:9月1日。

下面的代碼也是照著這個思路來寫的。

C#算法解決張老師的生日問題的演示代碼

  1. class Program     
  2. {     
  3.     /// <summary>     
  4.     /// 小明和小強都是張老師的學生,張老師的生日是M月N日,     
  5.     /// 2人都知道張老師的生是下列10組中的一天,     
  6.     /// 張老師把M值告訴了小明,把N值告訴了小強,     
  7.     /// 張老師問他們知道他的生日是那一天嗎?     
  8.     /// 3月4日 3月5日 3月8日     
  9.     /// 6月4日 6月7日     
  10.     /// 9月1日 9月5日     
  11.     /// 12月1日 12月2日 12月8日     
  12.     /// 小明說:如果我不知道的話,小強肯定也不知道     
  13.     /// 小強說:本來我也不知道,但是現在我知道了     
  14.     /// 小明說:哦,那我也知道了     
  15.     /// 請根據以上對話推斷出張老師的生日是哪一天??     
  16.     ///     
  17.     /// </summary>     
  18.     /// <param name="args"></param>     
  19.     static void Main(string[] args)     
  20.     {     
  21.         Dictionary<intint[]> birthdays = new Dictionary<intint[]>();     
  22.         birthdays.Add(1,new int[]{3,4});     
  23.         birthdays.Add(2,new int[]{3,5});     
  24.         birthdays.Add(3,new int[]{3,8});     
  25.         birthdays.Add(4,new int[]{6,4});     
  26.         birthdays.Add(5,new int[]{6,7});     
  27.         birthdays.Add(6,new int[]{9,1});     
  28.         birthdays.Add(7,new int[]{9,5});     
  29.         birthdays.Add(8,new int[]{12,1});     
  30.         birthdays.Add(9,new int[]{12,2});     
  31.         birthdays.Add(10,new int[]{12,8});     
  32.     
  33.         AnalyseBirthday(birthdays);              
  34.     
  35.         if (birthdays.Keys.Count > 0)     
  36.         {     
  37.             foreach (KeyValuePair<intint[]> item in birthdays)     
  38.             {     
  39.                 Console.WriteLine("張老師可能的生日為:{0}月{1}日", item.Value[0], item.Value[1]);     
  40.             }     
  41.         }     
  42.         else    
  43.         {     
  44.             Console.WriteLine("無解");     
  45.         }     
  46.         Console.ReadLine();     
  47.     }          
  48.     
  49.     private static void AnalyseBirthday(Dictionary<intint[]> birthdays)     
  50.     {     
  51.         //days:所有N值集合,TKey:是N值,TValue:是出現次數     
  52.         Dictionary<intint> days = new Dictionary<intint>();     
  53.         //months:所有N值集合,TKey:是M值,TValue:是出現次數     
  54.         Dictionary<intint> months = new Dictionary<intint>();     
  55.     
  56.         //遍歷birthdays并分別對days,months賦值     
  57.         foreach (KeyValuePair<intint[]> item in birthdays)     
  58.         {     
  59.             if (days.ContainsKey(item.Value[1]))     
  60.                 days[item.Value[1]] += 1;     
  61.             else    
  62.                 days.Add(item.Value[1], 1);     
  63.             if (months.ContainsKey(item.Value[0]))     
  64.                 months[item.Value[0]] += 1;     
  65.             else    
  66.                 months.Add(item.Value[0], 1);     
  67.         }     
  68.     
  69.         //聲明一個臨時用的List:tempDays,用來存儲N值     
  70.         List<int> tempDays = new List<int>();     
  71.         //聲明一個臨時用的List:tempMonths,用來存儲M值     
  72.         List<int> tempMonths = new List<int>();     
  73.         //聲明一個臨時用的List:keys,用來存儲birthdays的TKey值     
  74.         List<int> keys = new List<int>();     
  75.     
  76.         //查找所有可能生日中N值只出現一次的對應值,并將其保存到tempDays中     
  77.         //并獲取到唯一N值相對應的M值,并將其保存到tempMonths中     
  78.         foreach (KeyValuePair<intint> item in days)     
  79.         {     
  80.             if (item.Value == 1)     
  81.             {     
  82.                 tempDays.Add(item.Key);     
  83.     
  84.                 foreach (KeyValuePair<intint[]> birthday in birthdays)     
  85.                 {     
  86.                     if (birthday.Value[1] == item.Key)     
  87.                     {     
  88.                         if (!tempMonths.Contains(birthday.Value[0]))     
  89.                             tempMonths.Add(birthday.Value[0]);     
  90.                     }     
  91.                 }     
  92.             }     
  93.         }     
  94.     
  95.         //遍歷所有可能的生日,并獲取tempMonths中的所有     
  96.         //值在birthdays相應對應的TKey,存儲到keys中     
  97.         foreach (int month in tempMonths)     
  98.         {     
  99.             foreach (KeyValuePair<intint[]> birthday in birthdays)     
  100.                 if (birthday.Value[0] == month)     
  101.                     keys.Add(birthday.Key);     
  102.         }     
  103.     
  104.         //遍歷keys,在birthdays移除M=key的不可能的生日     
  105.         //移除months中相應的值     
  106.         //days出現的次數減一     
  107.         foreach (int key in keys)     
  108.         {     
  109.             months.Remove(birthdays[key][0]);     
  110.             days[birthdays[key][1]] -= 1;     
  111.             birthdays.Remove(key);     
  112.         }     
  113.     
  114.         //在days中移除不可能生日     
  115.         foreach (int day in tempDays)     
  116.         {     
  117.             days.Remove(day);     
  118.         }     
  119.     
  120.         //清空tempDays     
  121.         tempDays.Clear();     
  122.         //清空keys     
  123.         keys.Clear();     
  124.     
  125.         //遍歷所有可能的生日,移除N值出現過兩次的日期     
  126.         foreach (KeyValuePair<intint> item in days)     
  127.         {     
  128.             if (item.Value > 1)     
  129.             {     
  130.                 tempDays.Add(item.Key);     
  131.                 foreach (KeyValuePair<intint[]> birthday in birthdays)     
  132.                 {     
  133.                     if (birthday.Value[1] == item.Key)     
  134.                     {     
  135.                         if (!keys.Contains(birthday.Key))     
  136.                             keys.Add(birthday.Key);     
  137.                         months[birthday.Value[0]] -= 1;     
  138.                     }     
  139.                 }     
  140.             }     
  141.         }     
  142.         foreach (int key in keys)     
  143.             birthdays.Remove(key);     
  144.     
  145.         keys.Clear();     
  146.         tempMonths.Clear();     
  147.     
  148.         //遍歷所有可能的生日,移除M值出現過兩次的日期     
  149.         foreach (KeyValuePair<intint> item in months)     
  150.         {     
  151.             if (item.Value > 1)     
  152.                 if (!tempMonths.Contains(item.Key))     
  153.                     tempMonths.Add(item.Key);     
  154.         }     
  155.         foreach (int month in tempMonths)     
  156.         {     
  157.             foreach (KeyValuePair<intint[]> item in birthdays)     
  158.                 if (item.Value[0] == month)     
  159.                     if (!keys.Contains(item.Key))     
  160.                         keys.Add(item.Key);     
  161.         }     
  162.         foreach (int key in keys)     
  163.             birthdays.Remove(key);     
  164.                 
  165.     }     
  166. }   

整個過程foreach太多了,效率上有很大的問題,水平有限。還請網友不吝賜教!謝謝,嘿嘿:-)

C#算法解決張老師的生日問題就向你介紹到這里,希望對你學習C#算法有所幫助。

【編輯推薦】

  1. 簡單介紹C#預處理
  2. 詳解C#正規表達式
  3. C#字符串插入html標簽
  4. 分析C#不安全代碼
  5. C#算法巧解八皇后問題淺析
責任編輯:仲衡 來源: 博客園
相關推薦

2009-08-11 10:42:14

C#算法

2009-08-06 10:35:27

C# lock thi

2021-06-11 00:09:20

C#爬蟲版本

2009-08-10 13:49:50

C# txt文件

2024-09-17 17:50:28

線程線程安全代碼

2009-08-13 17:25:18

C# Convert類

2009-08-07 14:47:23

C#路徑問題

2009-09-15 17:46:08

C#綁定句柄無效

2009-08-11 09:16:00

2009-08-11 10:12:07

C#算法

2012-02-02 14:34:37

C# Socket

2009-08-06 16:01:30

C#接口成員

2025-02-10 10:52:34

WinForm窗口閃爍C#

2009-09-02 14:30:35

C#換行符號

2009-08-05 08:42:41

C#中用Oracle執DataSet

2011-04-25 15:15:00

C#

2009-08-03 14:09:15

C#調用API

2009-02-05 15:32:23

接口委托

2011-04-21 15:04:30

C#

2009-08-28 10:14:45

C#內存泄露
點贊
收藏

51CTO技術棧公眾號

99热免费精品在线观看| 99福利在线| 久久精品系列| 深夜福利91大全| 色黄视频免费看| bl在线肉h视频大尺度| 久久蜜桃av一区二区天堂| 国产专区精品视频| 国产一级特黄毛片| 日本黄色精品| 日韩美女视频在线| 久久美女福利视频| 成人免费网址| 久久综合成人精品亚洲另类欧美| 91亚洲一区精品| 日本视频在线观看免费| 国产大片一区| 亚洲人成网站免费播放| av免费观看久久| 狠狠人妻久久久久久| 欧美黄色一区| 欧美日本在线播放| 美女日批免费视频| 免费在线观看av网站| 成人在线一区二区三区| 国产精品丝袜久久久久久不卡| 国产一级一级片| 欧美xxav| 一区二区在线免费视频| www.88av| 日韩精品成人| 欧美视频一区二区三区四区| av动漫在线观看| 免费在线国产视频| 国产精品成人一区二区艾草| 久久久婷婷一区二区三区不卡| 国产在线拍揄自揄拍| 日本黄色精品| 一区二区亚洲精品国产| 四虎永久免费在线观看| 人人网欧美视频| 精品国产91亚洲一区二区三区婷婷 | 亚洲色图20p| 水蜜桃亚洲精品| 久热av在线| 91欧美一区二区| 久久99国产精品99久久| 好吊视频一二三区| 国产一区二区久久| 欧美福利视频在线观看| 97精品在线播放| 欧美电影《轻佻寡妇》| 最新日韩中文字幕| 亚洲一二三四视频| 成人免费在线播放| 在线电影中文日韩| 亚洲ⅴ国产v天堂a无码二区| 精品国产乱码久久久久久蜜坠欲下 | 欧美三级午夜理伦三级中视频| 久久精品香蕉视频| 日本美女一区| 国产精品久99| 亚洲巨乳在线观看| 欧美日韩欧美| 亚洲人精品午夜| 欧美另类videosbestsex日本| 成人黄视频在线观看| 亚洲精品视频免费看| 好吊色欧美一区二区三区四区 | 国产成人精品影院| 91嫩草国产在线观看| 午夜免费福利视频| 成人h版在线观看| 久久伦理网站| av资源网在线观看| 亚洲欧美怡红院| 国产91在线亚洲| 国产污视频在线播放| 在线看一区二区| 台湾无码一区二区| 成人性生交大片免费看在线播放| 国产日韩欧美高清在线| 亚洲春色综合另类校园电影| 老司机在线看片网av| 一区二区三区中文字幕| 热99这里只有精品| 日韩高清成人| 日韩视频在线永久播放| 极品粉嫩小仙女高潮喷水久久| 成人国产精品久久| 日韩午夜精品视频| 人妻少妇精品视频一区二区三区| 欧美日韩色图| 欧美多人爱爱视频网站| 天堂网免费视频| 亚洲视屏一区| 55夜色66夜色国产精品视频| 久久久久97国产| 亚洲影视在线| 97在线视频观看| 最近中文字幕免费在线观看| 国产精品一色哟哟哟| 韩国精品一区二区三区六区色诱| 亚洲成人影院麻豆| 26uuu另类欧美| 一区二区三区四区欧美日韩| 国产h片在线观看| 欧美日韩不卡视频| 欧美无人区码suv| 我不卡神马影院| 欧美专区在线视频| 午夜精品久久久久久久99热黄桃 | 日本91福利区| 国产一区高清视频| 韩国av网站在线| 色国产精品一区在线观看| 亚洲午夜精品在线观看| 欧美丝袜丝交足nylons172| 国模gogo一区二区大胆私拍| 91精品中文字幕| 久久精品视频在线看| 欧美成熟毛茸茸复古| 成人在线免费看黄| 日本道免费精品一区二区三区| 韩国一区二区三区四区| 日韩精品中文字幕第1页| 2019亚洲日韩新视频| 精品国产av一区二区三区| 国产精品视频一二| 欧美亚洲另类色图| 成人动态视频| 欧美另类高清videos| 中文字幕在线网站| 国产欧美日韩亚州综合| 青青草原成人网| 欧美巨大xxxx| 韩日欧美一区二区| 亚洲av永久纯肉无码精品动漫| 国产精品一区二区在线观看不卡| 日韩wuma| 国产精品亚洲一区二区三区在线观看| 亚洲精品二三区| 新91视频在线观看| 99热这里只有精品8| 国产精品一区二区欧美| 牛牛精品视频在线| 日韩欧美一区二区视频| a在线视频播放观看免费观看| 日韩电影免费在线看| 欧美一区二区三区电影在线观看| 国产51人人成人人人人爽色哟哟| 欧美日韩国产一区中文午夜| 国产精品无码av无码| 天堂资源在线亚洲| 欧美亚洲在线观看| 后入内射欧美99二区视频| 亚洲福利视频导航| 午夜不卡久久精品无码免费| 亚洲三级免费| 久久精品日韩精品| 日韩成人影音| 色伦专区97中文字幕| 一卡二卡在线视频| 亚洲女人****多毛耸耸8| 超碰91在线播放| 海角社区69精品视频| 国产日韩一区欧美| 欧美一级大片| 色一区av在线| 国产夫妻性生活视频| 亚洲成人黄色影院| 无码h肉动漫在线观看| 蜜桃视频一区二区三区| 无码人妻精品一区二区三区99v| 五月天av在线| 欧美美女一区二区在线观看| 日日噜噜夜夜狠狠久久波多野| 国产99精品国产| 亚洲欧洲精品一区| 伊人国产精品| 久久久久久有精品国产| 免费理论片在线观看播放老| 欧美精品视频www在线观看| 久草视频中文在线| 久久久久久影视| 国产欧美精品一二三| 国产欧美日韩在线一区二区| 国产免费观看久久黄| 污片视频在线免费观看| 亚洲欧美成人网| 国产精品视频一区二区三区,| 亚洲国产色一区| 国产又粗又长免费视频| 国产激情91久久精品导航| 欧美在线观看成人| 91精品国产调教在线观看| 国产精品国语对白| 成人av福利| 亚洲毛茸茸少妇高潮呻吟| 国产一区二区三区视频免费观看| 性做久久久久久免费观看| www中文在线| 99久久精品国产精品久久| 中文字幕永久有效| 午夜一区在线| 4444在线观看| 日韩在线观看| 久久久久se| 亚洲开心激情| 国产免费一区二区三区在线能观看 | 亚洲视频国产| 国产精品网站入口| 日产福利视频在线观看| 欧美精品做受xxx性少妇| 国产免费av在线| 亚洲电影免费观看| 国产精品久久久久久久久久久久久久久久久久 | 性欧美丰满熟妇xxxx性久久久| 国产自产高清不卡| 久久久久久久久久久久久久国产| 国自产拍偷拍福利精品免费一| 伊人久久婷婷色综合98网| 日韩精品一区二区三区av| 欧美极品xxxx| 国产盗摄在线观看| 在线视频国产日韩| 青青国产在线观看| 亚洲男女一区二区三区| 天堂av网手机版| 久久久精品tv| 在线天堂www在线国语对白| 国产精品456| www.午夜av| 久久草av在线| 久热精品在线观看视频| 久久久久av| 一区二区免费在线观看| av一区二区在线观看| 秋霞在线观看一区二区三区| 制服丝袜日韩| 欧美日韩亚洲免费| 亚洲自拍电影| 日韩精品极品视频在线观看免费| 亚洲欧洲av| 六月婷婷久久| 免费观看久久av| 91精品视频在线看| 国产香蕉久久| 国产欧美一区二区| 日本免费成人| 91亚洲精品一区| 午夜电影一区| 国产日韩欧美一区二区| 欧美电影免费网站| 久久久综合香蕉尹人综合网| 亚洲人和日本人hd| 日本精品二区| 四虎成人av| 成人午夜免费剧场| 中文字幕人成人乱码| 日本香蕉视频在线观看| 亚洲人成人一区二区三区| 自慰无码一区二区三区| 91亚洲国产成人久久精品| 亚洲欧美国产精品桃花| 国产精品传媒精东影业在线| 91看片淫黄大片91| 一区在线播放| aaa毛片在线观看| 日本网站在线观看一区二区三区| 国产精品嫩草影院8vv8| 国产91露脸合集magnet| 成人精品在线观看视频| 国产精品污污网站在线观看| 日韩欧美综合视频| 午夜精品aaa| 免费一级a毛片| 亚洲网友自拍偷拍| av资源免费观看| 欧美亚洲国产bt| 成 人 免费 黄 色| 精品视频www| 男人资源在线播放| 久久久久久尹人网香蕉| 精品免费av在线| 成人av播放| 国产欧美日韩精品一区二区免费| 91精品国产吴梦梦| 亚欧成人精品| 色男人天堂av| 久久伊人蜜桃av一区二区| 91视频免费看片| 午夜视频一区在线观看| 在线观看视频二区| 亚洲精品一区二区三区精华液| 免费黄网站在线观看| 久久久91精品国产一区不卡| 成人av免费电影网站| 成人有码在线视频| 国产精品对白久久久久粗| 亚洲精品中文字幕乱码三区不卡| 亚洲国产专区校园欧美| www亚洲成人| 91麻豆精品在线观看| 裸体武打性艳史| 欧洲亚洲国产日韩| 日本美女一级视频| 日韩中文字幕免费看| 电影网一区二区| 国产精成人品localhost| а天堂中文最新一区二区三区| 国产亚洲精品久久飘花| 91成人看片| 黄色国产小视频| 99re这里只有精品首页| 欧美 日韩 国产 一区二区三区| 色狠狠桃花综合| 天天操天天操天天| 色综合91久久精品中文字幕| 国产成人a视频高清在线观看| 久久国产精品久久精品国产| 欧美激情第10页| 亚洲男人天堂av在线| 欧美国产欧美亚州国产日韩mv天天看完整 | 亚洲影院在线观看| 夜夜躁很很躁日日躁麻豆| 亚洲精品资源在线| 国产理论在线| 国产精品入口免费| 国产精品sm| 亚洲欧洲日韩综合| 亚洲激情男女视频| av中文字幕免费| 欧美成人免费全部观看天天性色| 日韩成人一区| 中日韩在线视频| 激情综合网激情| 婷婷激情四射网| 777午夜精品免费视频| 国产极品999| 久久成人精品电影| 精品一区二区三区中文字幕在线 | 黄色成人在线网站| 麻豆精品国产传媒| 亚洲精品中文在线影院| 99久久精品国产成人一区二区| www国产91| 国产精品国产三级在线观看| 久久天天东北熟女毛茸茸| 国产乱子伦一区二区三区国色天香| 色哟哟一一国产精品| 欧美一区二区三区日韩视频| gogo在线观看| 国产精品久久久久久久久久直播| 激情另类综合| 日韩av一二区| 91福利国产精品| 香蕉视频网站在线观看| 成人性生交xxxxx网站| 亚洲美女视频| jjzz黄色片| 欧美视频精品一区| 国产精品无码白浆高潮| 俺也去精品视频在线观看| 欧美h版在线观看| 日韩中字在线观看| 久久久亚洲精品一区二区三区 | 蜜臀a∨国产成人精品| 欧美日韩国产一二三区| 日韩视频不卡中文| caoporn视频在线| 日本一区视频在线观看| 精品一区免费av| 亚洲国产精品午夜在线观看| 欧洲视频一区二区| 国产理论在线观看| 国产精品免费一区二区三区在线观看| 99精品福利视频| 卡一卡二卡三在线观看| 91精品国产综合久久久久久久| 亚洲第一图区| 日本精品二区| 国产91丝袜在线18| 中文精品久久久久人妻不卡| 免费av一区二区| 亚洲国产精品嫩草影院久久av| 三上悠亚在线一区二区| 一区二区三区av电影| 精品视频一二区| 超碰97人人人人人蜜桃| 久久久久国产精品一区三寸| 丝袜美腿小色网| 亚洲免费电影一区| 精品91福利视频| 久久久久久久久久久久久国产精品| 综合久久给合久久狠狠狠97色| 日本一区高清| 高清一区二区三区视频| 奇米色777欧美一区二区| 日本一级淫片色费放|