Funzioni dispari e pari nella programmazione in C
L'operatore del modulo in C
L'operatore del modulo in C (rappresentato come il simbolo '%') agisce come un tipo di divisione. Ma invece di dividere due numeri e restituire il quoziente all'utente, l'operatore del modulo divide due numeri e restituisce il resto come numero intero. In questo esempio, si verificano due operazioni di modulo, ciascuna che restituisce un valore identico:
int x = 11% 4 // resto di 11/4 = 3 int e = 13% 5 // resto di 13/5 = 3
Usa il modulo per determinare i numeri pari e dispari
Poiché l'operazione modulo determina il resto di una divisione tra due numeri, sembra logico che l'operatore modulo sia utilizzato per trovare numeri pari e dispari. Un numero pari, per definizione, è qualsiasi numero divisibile per 2. Pertanto, il numero restituisce uno zero quando si ottiene il modulo della divisione per 2. Più semplicemente, un numero "n" è anche se "n% 2" è uguale a zero. Ad esempio, questo codice definisce una funzione che accetta un intero e restituisce un numero intero (0 o 1) a seconda che il numero sia pari o meno.
int isEven (int x) {return (x% 2); }
Una funzione di generazione di numeri pari e dispari
Usando l'operazione del modulo, sembra semplice creare una funzione che generi numeri pari o dispari. Un programmatore può trovare utile generare un elenco di numeri pari e dispari. In questo caso, un semplice ciclo for e una dimensione del campo immesse dall'utente sono l'unica cosa di cui hai bisogno per creare una collezione di numeri:
void evenGenerate (int size) {int i = 0;
per (i; i <= size; i ++) {if (i% 2 == 0) cout << i << endl; }}
Questo genera numeri pari. Il programmatore può modificare l'istruzione "se" per dire "if (i% 2 == 1)" per generare numeri dispari.
Alternative al modulo
Il modulo stesso non è un'operazione semplice, ma contiene tre calcoli matematici in uno. Questo perché l'operazione "x% y" è effettivamente uguale a "x - y * (x / y)". Sapendo questo, un programmatore può dividere l'operazione o trovare modi per incorporare le parti dell'operazione con altre operazioni per ottimizzare il tempo. Ma per l'uso e la facilità generale nella codifica, l'operatore del modulo funziona bene. Quanto segue serve come esempio di due metodi insieme in C:
int x = 10% 2; // 10/2 = 5 senza resto int y = 10 - (2 * (10/2)); // In ordine di funzionamento, 10/2 = 5; 5 * 2 = 10; 10 - 10 = 0 riposo