2010-07-09 67 views
21

通過將int計算的乘積轉換爲字符串,不使用字符串操作(檢查.,字符的出現)。C#如何確定一個數字是否是另一個數字的倍數?

沒有使用依賴數據類型錯誤的try/catch方案。

如果一個數字是另一個數字的倍數,你如何專門檢查使用C#?

例如6是3的倍數,但7不是。

+0

看起來像給我作業。標記爲這樣。家庭作業 – 2010-07-09 21:02:14

+2

不是作業,我讀了這個:http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html – 2010-07-09 21:15:57

+0

我相應地重新:) – 2012-03-15 10:07:21

回答

58

嘗試

public bool IsDivisble(int x, int n) 
{ 
    return (x % n) == 0; 
} 

的模數運算符%返回除以n X之後的餘數,這將始終爲0,如果x是用n整除。

欲瞭解更多信息,請參閱the % operator on MSDN

+0

%或者vb中的mod計算你之後剩下的東西做一個分析,例如25%6 = 1。所以如果它是0,那麼沒有剩下,所以第一個必須是第二個的倍數。 – 2010-07-09 21:02:13

+1

給定一個數n,它可以用另一個數m表示:n = k * m + r。例如,6 = 1 *(4)+ 2或6 = 2 *(3)+ 0. x%y只返回上述公式中的'r'項。 – 2010-07-09 21:17:18

+1

老問題,但只是爲了將來的參考,這隻適用於'n> x',否則結果是'x'而不是'0'。因此,對於一個多個數字的正確方法是'return n> = x && x%n == 0' – PedroC88 2014-02-28 06:27:02

13

使用模量(%)操作:

6 % 3 == 0 
7 % 3 == 1 
7

我沒有得到有關該字符串的東西,一部分,但你爲什麼不使用模運算符(%)來檢查數量爲可以被另一個分割?如果一個號碼可以被另一個號碼分割,另一個號碼會自動成爲該號碼的倍數。

,過程大概是:

int a = 10; int b = 5; 

    // is a a multiple of b 
    if (a % b == 0) .... 
+0

謝謝,我在網上看到的一些示例代碼在產品上使用字符串操作來解決這個問題。 – 2010-07-09 20:59:27

11
bool isMultiple = a % b == 0; 

如果A是B

0

以下程序將執行的倍數。這是事實, 「一個數是另一個多」,在

#include<stdio.h> 
int main 
{ 
int a,b; 
printf("enter any two number\n"); 
scanf("%d%d",&a,&b); 
if (a%b==0) 
printf("this is multiple number"); 
else if (b%a==0); 
printf("this is multiple number"); 
else 
printf("this is not multiple number"); 
return 0; 
} 
相關問題