2016-08-25 25 views
0

我想生成一組分割問題。這些問題必須給出一個整數的答案,而不是實數。 這裏是我的代碼:C#分割表達式生成器 - 僅MOD 0s

 int tempNum1, tempNum2; 
     do // Cannot give decimal answers for students 
     { 
      tempNum1 = numGen.Next(minValue, maxValue); 
      tempNum2 = numGen.Next(minValue, maxValue); 
     } while (tempNum1 % tempNum2 != 0); 
     return String.Format("{0}/{1}", tempNum1, tempNum2); 

返回值存儲在陣列中,已經能夠顯示。 問題是生成時間太長;有沒有需要改變minV和maxV的解決方案?

+6

如果您想生成類型爲a/b = c的問題,其中所有數字都是整數,請不要隨機繪製'a'和'b',而是繪製'b'和'c',然後計算'a = b * c'。 – CompuChip

+1

採用隨機的2個數字,將它們相乘然後將乘法結果除以其中一個參數以獲得mod 0是不是更容易? – 3615

回答

4

爲什麼不通過乘法生成問題?

int tempNum2 = numGen.Next(minValue, maxValue); 
int f = numGen.Next(minValue, maxValue); 
int tempNum1 = tempNum2 * f; 
return String.Format("{0}/{1}", tempNum1, tempNum2); 

當然,你需要調整maxValuef找到所需範圍內的數字。

+0

btw:這是作業的一部分嗎?我肯定在一個月前有一個相同的問題......但不能再找到它了。 –