Fonctions impaires et paires en programmation en C
L'opérateur de module en C
L'opérateur de module en C (représenté par le symbole '%') agit comme un type de division. Mais au lieu de diviser deux nombres et de renvoyer le quotient à l'utilisateur, l'opérateur de module divise deux nombres et renvoie le reste sous forme d'entier. Dans cet exemple, deux opérations de module se produisent, chacune renvoyant une valeur identique:
int x = 11% 4 // reste de 11/4 = 3 int et = 13% 5 // reste de 13/5 = 3
Utilisez le module pour déterminer les nombres pairs et impairs
Puisque l'opération modulo détermine le reste d'une division entre deux nombres, il semble logique que l'opérateur modulo soit utilisé pour rechercher des nombres pairs et impairs. Un nombre pair, par définition, est tout nombre divisible par 2. Par conséquent, le nombre renvoyé par un zéro lors de l'obtention du module de la division par 2. Plus simplement, un nombre "n" est même si "n% 2" est égal à zéro. Par exemple, ce code définit une fonction qui prend un entier et retourne un entier (0 ou 1) selon que le nombre est pair ou non.
int isEven (int x) {return (x% 2); }
Une fonction de génération de nombres pairs et impairs
En utilisant le fonctionnement du module, il semble simple de créer une fonction générant des nombres pairs ou impairs. Un programmeur peut trouver utile de générer une liste de nombres pairs et impairs. Dans ce cas, une seule boucle for et une taille de champ entrés par l'utilisateur constituent la seule chose dont vous avez besoin pour créer une collection de nombres:
void evenGenerate (taille int) {int i = 0;
pour (i; i <= taille; i ++) {si (i% 2 == 0) cout << i << endl; }}
Cela génère des nombres pairs. Le programmeur peut modifier l’instruction "if" pour indiquer "if (i% 2 == 1)" afin de générer des nombres impairs.
Alternatives au module
Le module lui-même n'est pas une opération simple, mais contient trois calculs mathématiques en un. En effet, l'opération "x% y" est en fait égale à "x - y * (x / y)". Sachant cela, un programmeur peut diviser l’opération ou trouver des moyens d’intégrer les parties de l’opération à d’autres opérations afin d’optimiser le temps. Mais pour une utilisation et une facilité générale de codage, l'opérateur du module fonctionne bien. Voici un exemple de deux méthodes combinées en C:
int x = 10% 2; // 10/2 = 5 sans reste int y = 10 - (2 * (10/2)); // Dans l'ordre des opérations, 10/2 = 5; 5 * 2 = 10; 10 - 10 = 0 repos