C#如何确定一个数字是否是另一个数字的倍数?

问题描述:

通过将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

尝试

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

使用模量(%)操作:

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

我没有得到有关该字符串的东西,一部分,但你为什么不使用模运算符(%)来检查数量为可以被另一个分割?如果一个号码可以被另一个号码分割,另一个号码会自动成为该号码的倍数。

,过程大概是:

int a = 10; int b = 5; 

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

谢谢,我在网上看到的一些示例代码在产品上使用字符串操作来解决这个问题。 – 2010-07-09 20:59:27

bool isMultiple = a % b == 0; 

如果A是B

以下程序将执行的倍数。这是事实, “一个数是另一个多”,在

#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; 
}