Conjecture de syracuse(suite de collatz)
Résolu/Fermé
annamir
Messages postés
15
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
13 avril 2009
-
12 févr. 2009 à 17:32
loupius - 12 févr. 2009 à 19:06
loupius - 12 févr. 2009 à 19:06
4 réponses
annamir
Messages postés
15
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
13 avril 2009
2
12 févr. 2009 à 18:44
12 févr. 2009 à 18:44
et d'ailleurs, je l'ai déjà commencé, mais je voulais avoir une réponse pour comparer avec ce que j'ai fait,
#include <stdio>
int main()
{
long A;
int i;
printf("Quel est le nombre ? ");
scanf("%ld", &A);
do
{
if (A%2==0)
A = A / 2;
else
A = A * 3 + 1;
printf("%d\n" , A);
} while (A != 1);
system("PAUSE");
return 0;
}
le problème c'est que je comprends pas, ce que demande l'énoncé en disant''qui lit un coefficient de départ a représentant le premier terme'' et je sais si c'est ce que mon programme fait.
#include <stdio>
int main()
{
long A;
int i;
printf("Quel est le nombre ? ");
scanf("%ld", &A);
do
{
if (A%2==0)
A = A / 2;
else
A = A * 3 + 1;
printf("%d\n" , A);
} while (A != 1);
system("PAUSE");
return 0;
}
le problème c'est que je comprends pas, ce que demande l'énoncé en disant''qui lit un coefficient de départ a représentant le premier terme'' et je sais si c'est ce que mon programme fait.
Bonjour
Dans l'énoncé, il n'y avait pas une troisième remarque disant que l'élève devait faire le travail lui-même ?
Ici, on donne des coups de pouce, mais on ne fera pas tes devoirs à ta place
Présente-nous un travail sérieusement commencé et dis-nous où tu as un problème, là nous pourrons t'aider.
Dans l'énoncé, il n'y avait pas une troisième remarque disant que l'élève devait faire le travail lui-même ?
Ici, on donne des coups de pouce, mais on ne fera pas tes devoirs à ta place
Présente-nous un travail sérieusement commencé et dis-nous où tu as un problème, là nous pourrons t'aider.
Ca fait quelques minutes que j'avais envie de répondre, mais je n'arrivais pas à trouver une formulation... et j'ai bien fait d'attendre: la tienne est excellente.
Parfois je me demande si on ne nous prend pas pour des OS (oh non pas des sytèmes d'exploitation... mais des systèmes exploités!).
Il vaut mieux en rire, isn't ;-(o)
Parfois je me demande si on ne nous prend pas pour des OS (oh non pas des sytèmes d'exploitation... mais des systèmes exploités!).
Il vaut mieux en rire, isn't ;-(o)
annamir
Messages postés
15
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
13 avril 2009
2
12 févr. 2009 à 18:36
12 févr. 2009 à 18:36
non, dans l'énoncé, il n'y avait pas une troisième remarque disant que l'élève devait faire le travail lui-même, puisque ce n'est pas un devoir, je débute en programmation et j'essaye de faire des exercices tirés de livres ou internet, mais j'y arrive pas alors je poste.
annamir
Messages postés
15
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
13 avril 2009
2
12 févr. 2009 à 18:46
12 févr. 2009 à 18:46
je veux dire je sais pas si c'est ce que mon programme fait.
12 févr. 2009 à 19:06
La solution parait correcte (à part le 'printf("%d\n" , A);' qui devait être 'printf("%ld\n" , A);'.
Est-ce que ça marche?
Une remarque: Tu fais déjà une hypothèse concernant la convergence; en effet le 'while (A != 1);' signifie que tu connais déjà la solution. D'autre part c'est un peu dangereux de faire un tel 'while', car c'est le genre 'boucle éternelle'. Bien sûr, dans le cas présent ça marche, mais peut-être serait-il préférable d'écrire 'while ((A != 1) && (++boucle < 1000))' avec boucle = 0 avant le 'do'.