Multiple de 4
Résolu/Fermé
A voir également:
- Multiple 4
- Paris multiple 2/4 explication ✓ - Forum Loisirs / Divertissements
- Code gta 4 - Guide
- Clé de licence sims 4 ✓ - Forum Windows
- Choix multiple excel - Guide
- Bluestacks 4 - Télécharger - Émulation & Virtualisation
3 réponses
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
Modifié le 16 mai 2017 à 22:50
Modifié le 16 mai 2017 à 22:50
Bonjour,
Oui mais non....
Déjà .. entre 4 et 80 .. j'aurai pensé que le 4 était inclus .. donc dans ta boucle i = 4...
Mais bon.. maintenant... si je te demande de faire le même programme mais que tu laisses l'utilisateur choisir l'interval de début et de fin... ta boucle ne fonctionnera plus...
Mathématiquement.. pour savoir si un nombre est un multiple de 4 il suffit de diviser ce nombre par 4 et de voir si ça tombe juste ou si il y a des virgules....
Pour faire cette vérificaiton.. il me semble qu'il existe (même en c++) .. le MODULO.
Je ne fais pas de c++ .. mais je pense qu'un prog de ce genre répond à la question :
Cordialement,
Jordane
Oui mais non....
Déjà .. entre 4 et 80 .. j'aurai pensé que le 4 était inclus .. donc dans ta boucle i = 4...
Mais bon.. maintenant... si je te demande de faire le même programme mais que tu laisses l'utilisateur choisir l'interval de début et de fin... ta boucle ne fonctionnera plus...
Mathématiquement.. pour savoir si un nombre est un multiple de 4 il suffit de diviser ce nombre par 4 et de voir si ça tombe juste ou si il y a des virgules....
Pour faire cette vérificaiton.. il me semble qu'il existe (même en c++) .. le MODULO.
Je ne fais pas de c++ .. mais je pense qu'un prog de ce genre répond à la question :
#include <iostream> // std::cout, std::end
int main () {
int i,deb,fin;
deb = 1;
fin = 80;
For (i=deb;i<=fin;i++){
if (i % 4 == 0 ) {
// a est un multiple de 4
std::cout<<i<<endl;
}
}
return 0;
}
Cordialement,
Jordane
Dalfab
Messages postés
703
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 mars 2023
100
17 mai 2017 à 04:38
17 mai 2017 à 04:38
Bonjour,
Ton code est correct mais tu utilises tes connaissances mathématiques pour contourner ce que l'exercice cherche à te faire faire. Les deux nombres "magiques" 5 et 21 sont respectivement le 1er diviseur par 4 valide à partir de 20 et le suivant du diviseur par 4 de 80.
Le code de jordane répond à l’esprit de l'exercice
Ton code est correct mais tu utilises tes connaissances mathématiques pour contourner ce que l'exercice cherche à te faire faire. Les deux nombres "magiques" 5 et 21 sont respectivement le 1er diviseur par 4 valide à partir de 20 et le suivant du diviseur par 4 de 80.
Le code de jordane répond à l’esprit de l'exercice
for (int i = deb ; i <= fin ; ++i ) {
if ( i % 4 == 0 ) std::cout << i << std::endl;
}Ta méthode est plus optimale, mais pour la rendre compatible avec des limites et un diviseur quelconque devrait s'écrireconst int debut = 20;
const int fin = 80;
const int diviseur = 4;
for ( int i = (debut+diviseur-1)/diviseur ; i <= fin/diviseur ; ++i ) {
std::cout << i*diviseur << std::endl;
}Le point de départ est complexe, il permet de diviser en arrondissant au dessus pour obtenir le 1er diviseur qui sera après la borne initiale.
17 mai 2017 à 16:51
Oui tas raison mais si le programme ne demande pas a l'utilisateur de donner le debut et la fin ma reponse serait juste ?
Et estce qu'on peut ecrire comme ca ou c'est faux
#include<iostream>
using namespace std;
int main(){
int deb,fin,i;
deb=20;
fin=80;
for(i=deb;i<=fin;i=i+4){
cout<<i<<endl;
}
return 0;
}
17 mai 2017 à 20:17
Il faut remplacer deb par le premier multiple de 4 qui n'est pas avant deb, qui serait : ou .
17 mai 2017 à 21:27