2010-07-09 75 views
21

Sin utilizar la manipulación de cadenas (verificando una ocurrencia del carácter . o ,) al convertir el producto de un cálculo int en una cadena.C# ¿Cómo determinar si un número es un múltiplo de otro?

y

sin utilizar escenarios try/catch que dependen de errores de tipos de datos.

¿Cómo se comprueba específicamente el uso de C# si un número es múltiplo de otro?

Por ejemplo, 6 es un múltiplo de 3, pero 7 no lo es.

+0

Parece una tarea para mí. Etiquetado como tal. –

+2

¿deberes? No es tarea, leí esto: http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html –

+0

Retuse en consecuencia :) –

Respuesta

58

Trate

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

El módulo operador% devuelve el resto después de dividir x por n que siempre será 0 si x es divisible por n.

Para obtener más información, vea the % operator on MSDN.

+0

% o mod en vb calcula lo que sobra después de ti hacer una devision, por ejemplo 25% 6 = 1. Entonces, si es 0, no queda nada, entonces el primero debe ser un múltiplo del segundo. –

+1

Dado un número n, se puede expresar en términos de otro número m así: n = k * m + r. Por ejemplo 6 = 1 * (4) + 2 o 6 = 2 * (3) + 0. x% y devuelve solo el término 'r' en la fórmula antes mencionada. –

+1

Pregunta anterior, pero solo para referencia futura, esto solo es válido cuando 'n> x'; de lo contrario, el resultado es' x' en lugar de '0'. Entonces, el enfoque correcto para un número múltiple sería 'return n> = x && x% n == 0' – PedroC88

13

Utilice el módulo (%) operador:

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

que no entiendo que parte de la materia de cuerdas, pero ¿por qué no utilizar el operador módulo (%) para comprobar si un número es divisible por otro? Si un número es divisible por otro, el otro es automáticamente un múltiplo de ese número.

Se va así:

int a = 10; int b = 5; 

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

Gracias, algunos ejemplos de código que he visto en la red usan la manipulación de cadenas en el producto para resolver este problema. –

11
bool isMultiple = a % b == 0; 

Esto será cierto si a es un múltiplo de b

0

programas siguiendo ejecutarán, "un número es múltiplo de otro" en

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