Conjecture de syracuse(suite de collatz)
Résolu
annamir
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
loupius -
loupius -
4 réponses
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)
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'.