2014-04-04 63 views
1

我目前正在研究一個需要我覆蓋服務的項目。以3的倍數查找數字的最佳方法C#

我有3個列表。 List1,List2和List3。我希望我所有的名單都能處理3的倍數的任何數字。

計數會進來。如果數字是1,請轉到List 1.如果數字是4,請轉到List1。如果數字是9到列表3.

例如:

List1 will deal with 1, 4, 7, 10, 13, 16 etc 
List2 will deal with 2, 5, 8, 11, 14, 17 etc 
List3 will deal with 3, 6, 9, 12, 15, 18 etc 

我希望是有道理的。

而不是設置表或案例,我寧願一個簡單的數學方法。

感謝

回答

1

只需使用Modulus功能。它返回除法運算的餘數。

int number = 4; 
int result = number % 3; 

這裏的結果將是1,這是必需的等等。

這是3的C#

+0

感謝@NikhilArgrawal – DarkShadowAY

2

倍數您需要使用模塊化的數學查找號碼最好的方式。要做到這一點,你只需要像這樣:

int listNumber = input % 3; 

這將輸出0,1或2任何正整數。 0在這種情況下代表列表3.

然後如何使用這將取決於您的列表如何存儲等,但希望應該是一個簡單的練習。

+0

完全忘了這一點。太棒了,謝謝! – DarkShadowAY

0

喜歡的東西

var listSelector = number % 3; 
switch(listSelector) 
{ 
case 0: 
list3.add(number); 
break; 
case 1: 
list1.add(number); 
break; 
case 2: 
list2.add(number); 
break; 
} 

0將土地納入項目list3爲0%3 == 0

+0

使用這種方法,您將1放入列表2中,這不是OP後的內容。除了0到3,其他人應該去相同的編號列表。 – Chris

+0

修正了1和2進入了錯誤的列表,但是您的聲明除了0-3之外的其他數字會出現在同一個列表中是錯誤的,因爲模運算會將它們排序到右列表中。 – woutervs

0
 var lists = new[] { 
      new List<int>(), 
      new List<int>(), 
      new List<int>() 
     }; 

     var listToDoStuffWith = lists[inputNumber % 3]; 
+0

儘管您的答案可能有效,但如果爲您的方法添加一些說明和背景將會很好 –