2010-07-09 13 views
21

Senza utilizzare la manipolazione di stringhe (controllare l'occorrenza del carattere . o ,) convertendo il prodotto di un calcolo int in stringa.C# Come determinare se un numero è multiplo di un altro?

e

senza usare scenari try/catch basandosi su errori da tipi di dati.

Come si controlla in modo specifico l'utilizzo di C# se un numero è multiplo di un altro?

Ad esempio 6 è un multiplo di 3, ma 7 non lo è.

+0

Sembra un compito per me. Contrassegnato come tale. –

+2

compiti a casa? Non a casa, ho letto questo: http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html –

+0

Mi sono riclassificato di conseguenza :) –

risposta

58

Prova

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

Il modulo operatore% restituisce il resto dopo la divisione x per n che sarà sempre 0 se x è divisibile per n.

Per ulteriori informazioni, vedere the % operator on MSDN.

+0

% o mod in vb calcola ciò che rimane dopo di te fai una deviazione, per esempio 25% 6 = 1. Quindi se è 0, non ne rimane più, quindi il primo deve essere un multiplo del secondo. –

+1

Dato un numero n, può essere espresso in termini di un altro numero m in questo modo: n = k * m + r. Ad esempio 6 = 1 * (4) + 2 o 6 = 2 * (3) + 0. x% y restituisce solo il termine 'r' nella formula summenzionata. –

+1

Vecchia domanda ma solo per riferimento futuro, questo vale solo quando 'n> x' altrimenti il ​​risultato è' x' invece di '0'. Quindi l'approccio corretto per un numero multiplo sarebbe 'return n> = x && x% n == 0' – PedroC88

13

Utilizza il modulo (%) Operatore:

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

non ottengo quella parte circa la roba stringa, ma il motivo per cui non uso l'operatore modulo (%) per verificare se un numero è dividibile da un altro? Se un numero è divisibile da un altro, l'altro è automaticamente un multiplo di quel numero.

Va così:

int a = 10; int b = 5; 

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

Grazie, un codice di esempio che ho visto sulla rete utilizza la manipolazione delle stringhe sul prodotto per risolvere questo problema. –

11
bool isMultiple = a % b == 0; 

Ciò sarà vero se a è un multiplo di b

0

seguenti programmi verranno eseguiti, "un numero è più di un altro" in

Problemi correlati