代码之家  ›  专栏  ›  技术社区  ›  JL. Hans Passant

如何判断一个数是否是另一个数的倍数?

c#
  •  24
  • JL. Hans Passant  · 技术社区  · 14 年前

    不使用字符串操作(检查 . , 字符)通过将int计算的乘积转换为字符串。

    不使用依赖于数据类型错误的try/catch场景。

    如果一个数是另一个数的倍数,你如何用C来具体检查?

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

    5 回复  |  直到 10 年前
        1
  •  85
  •   NickG    6 年前

    尝试

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

    模运算符%返回x除以n后的余数,如果x可被n整除,则余数始终为0。

    有关详细信息,请参阅 the % operator on MSDN .

        2
  •  16
  •   Lee    14 年前
    bool isMultiple = a % b == 0;
    

    如果a是b的倍数,则为真

        3
  •  14
  •   Joel Mueller    14 年前

    使用模数( % )操作员:

    6 % 3 == 0
    7 % 3 == 1
    
        4
  •  9
  •   Johannes Rudolph    14 年前

    我不明白关于字符串的部分,但是为什么不使用模运算符呢( % )检查一个数是否可以被另一个数除?如果一个数可被另一个数除,那么另一个数自动是该数的倍数。

       int a = 10; int b = 5;
    
       // is a a multiple of b 
       if ( a % b == 0 )  ....
    
        5
  •  -1
  •   Chandan Kumar Pandey    8 年前

    以下程序将执行“一个数是另一个数的倍数”

    #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;
    }
    
        6
  •  -2
  •   Anon    4 年前

    你的程序有一些语法错误,这里有一个工作代码;

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

    }