台灣最大程式設計社群網站
線上人數
1091
 
會員總數:246691
討論主題:190104
歡迎您免費加入會員
討論區列表 >> C# >> C#新手 請求各位大大幫忙
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C#新手 請求各位大大幫忙
價值 : 50 QP  點閱數:1270 回應數:13
樓主

嘎哈哈
門外漢
0 2
76 2
發送站內信

不好意思 小弟剛學C#

最近遇到一道題目困難我很久,所以想麻煩各位大大幫忙指點

題目如下:

假設一個地區有17間房子

今天以X+5的方式輪流停電 假設第一次停電為第1間 那下次就是第6 第11 第16間停電

到了第16間後要跳過 到第4間(16 17 1 2 3 4) 第9間 以此類推 還有不能重覆停電

麻煩各位大大了 不好意思

搜尋相關Tags的文章: [ C# ] , [ 停電 ] , [ 新手 ] ,
本篇文章發表於2017-05-23 20:37
1樓
回應

CHShen
捐贈 VP 給 CHShen 檢舉此回應
提示
(X+5)%17
本篇文章回覆於2017-05-23 21:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

陳威瑄
檢舉此回應
迴圈內使用if(房號==16){continue;}的方式跳過
以及使用一個陣列用來存放已經停過的房號
如果陣列內存在那個房號就跳過(也可以直接把16號放進去裡面)
本篇文章回覆於2017-05-24 11:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Always
檢舉此回應
以下給您參考,若是作業,請一定要弄懂

本篇文章回覆於2017-05-24 16:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

嘎哈哈
檢舉此回應
感謝樓上各位大大的指點

3樓大的程式瑪我稍微看了一下

我不懂的地方是
11 if (x == 0) x += 5;

這邊判斷他x==0是為了讓她回到0 5 10 這樣嗎

12 if (!list.Contains(x))

這邊會傳一個True或false的值 那裡面放x我不太懂詳細結果

可以在麻煩大大解釋嗎 不好意思
本篇文章回覆於2017-05-24 22:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

彩虹
檢舉此回應
我個人覺得 #1樓 的方式是最快,且是最佳解...,並且不需要任何多餘的判斷式
(建議作者多思考一下為何#1樓會這樣子提示)

我是很想提供程式碼 1樓 提示的程式碼
但是我更希望你多思考

這題真的沒什麼太大的困難

如果不用1樓的方式
倒也不太需要用到陣列



本篇文章回覆於2017-05-24 23:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
最有價值解答

Always
檢舉此回應
彩虹您好,
其實用 x = (x + 5) % 17;應該還是要判斷,因為當x+5=17時,(x + 5) % 17會等於0

嘎哈哈您好,
抱歉!有些東西沒刪掉,


本篇文章回覆於2017-05-25 08:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

彩虹
檢舉此回應
謝謝 #Always 的提醒
的確會有餘數=0的問題
要加上if((x+5)%17==0),則x=(x+5*2)%17
本篇文章回覆於2017-05-25 10:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

gh .net
檢舉此回應


如果16不打算停電就將有 //的兩行加入if(a!=16)
本篇文章回覆於2017-05-25 17:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

Eucalyptus
檢舉此回應
這個題目可看成是一個環狀佇列(circular queue),
由於5和17之間沒有大於1的公因數,所以不會有重複。
借用Always大大的程式碼改編,求得從每一間開始的停電序列,如下:

本篇文章回覆於2017-05-26 10:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

彩虹
檢舉此回應
#Eucalyptus 你直接這樣寫會有問題
如我在#7樓的回覆

不然會出現 【第0間停電】
你需要把 (x + 5) % 17 等於 0 的問題排除

謝謝


本篇文章回覆於2017-05-26 12:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

Eucalyptus
檢舉此回應
我也疏忽了..多謝彩虹大的提醒。
x = (x + 5) % 17;
x = (x == 0 ? 17 : x); //加入餘數=0的判斷
本篇文章回覆於2017-05-26 13:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

CHShen
捐贈 VP 給 CHShen 檢舉此回應
提供一下我的想法,
不用 array,
精神一樣是靠餘數運作,
也不用判斷0,
印完 17 次就收工.

本篇文章回覆於2017-07-21 16:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

CHShen
捐贈 VP 給 CHShen 檢舉此回應
精簡一下大概是這樣

本篇文章回覆於2017-07-21 16:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.