progr de recherche - C - Programmation
Marsh Posté le 01-12-2004 à 16:56:05
Lis les règles du forum.
Marsh Posté le 01-12-2004 à 17:00:27
Aucun problème.
Code :
|
Marsh Posté le 01-12-2004 à 17:01:19
non qui ont cette propriete pas ceux qui font seulement 153 ! on commence avec le nbr 1 on verifie siil est eleve au cube il vaut son nbr si c bon on l affiche et la limitte c 2000 000 dont on va avoir des nbr style 253=? 2^3+5^3+3^3 si oui afficher sinon faire la mm chose avec le nombre +1
Marsh Posté le 01-12-2004 à 17:01:41
Lam's a écrit : Aucun problème.
|
t'as fais une faute
Marsh Posté le 01-12-2004 à 17:03:02
On est près à t'aider (sincèrement), mais il faut d'abord que tu nous montre ce que tu as commencé à faire, comme l'indiquent les règles du forum Prog.
Et que tu poses des questions précises, plutôt que: "comment faire ?".
Marsh Posté le 01-12-2004 à 17:06:59
ben en fait ce que j arrive pas a faire c decomposer le nbr ( ex : 562 c'est 5 , 6 et 2 ) pour pouvoir le tester c ça mon probleme
Marsh Posté le 01-12-2004 à 17:07:32
Tu raisonnes à l'envers AMHA.
Marsh Posté le 01-12-2004 à 17:08:42
amha ? soit c est ça mon probleme et j aurais aimer des conseils etc pour y arriver a faire cet exercice
Marsh Posté le 01-12-2004 à 17:09:44
à mon humble avis.
Marsh Posté le 01-12-2004 à 17:13:48
kelk 1 a écrit : ben en fait ce que j arrive pas a faire c decomposer le nbr ( ex : 562 c'est 5 , 6 et 2 ) pour pouvoir le tester c ça mon probleme |
amha= "à mon humble avis".
Pour la décomposition, c'est très simple:
Tu effectues une boucle interne, qui fait:
N=153;
Tant que N différent de 0
| chiffre=N modulo 10
| N=N divisé par 10
| Faire quelque chose avec chiffre (le mettre au cube par exemple)
Marsh Posté le 01-12-2004 à 17:14:54
C'est si compliqué que ça de faire des divisions par puissances de 10?
Marsh Posté le 01-12-2004 à 17:15:43
Decomposer un nombre entier est une chose très simple en C et je pense qu'en te documentant un petit peu tu devrais pouvoir trouver la méthode à utiliser très facilement.
Le programme que tu dois écrire fait 25 lignes (sans chercher à l'optimiser).
Code :
|
Voilà déjà la structure.
J'ai trouvé les nombres 0, 1, 153, 9474, 9800817, ...
Marsh Posté le 01-12-2004 à 17:15:59
mwai pq pas je vais essayer mais je crois que j ai fais ça y a pas lgt et ça a pas marche
Marsh Posté le 01-12-2004 à 17:17:04
kelk 1 a écrit : mwai pq pas je vais essayer mais je crois que j ai fais ça y a pas lgt et ça a pas marche |
Montre nous ce que tu as fais alors !
Marsh Posté le 01-12-2004 à 17:18:54
je suis deso mais je saurais pas car j ecris tjs par dessuset ce que j ai pour le moment ne ressemble plus a rien
Marsh Posté le 01-12-2004 à 17:20:17
Bon, alors essaie d'avancer avec les pistes qu'on ta données et reviens si tu as un pb.
Marsh Posté le 01-12-2004 à 17:22:59
darkoli a écrit : J'ai trouvé les nombres 0, 1, 153, 9474, 9800817, ... |
Tu trouves pas 371, mais tu trouve 9474 ? T'es en base 10, t'es sûr ?
Marsh Posté le 01-12-2004 à 17:27:53
Lam's a écrit : Tu trouves pas 371, mais tu trouve 9474 ? T'es en base 10, t'es sûr ? |
J'ai compris l'énoncé de la façon suivante :
N = C1^Cn + C2^cn + C3^Cn + ... + Cn^Cn
Où C1 est le plus grand chiffre du nombre et Cn le plus petit.
Donc 371 != 3^1 + 7^1 + 1^1.
Mais 9474 = 9^4 + 4^4 + 7^4 + 4^4.
Marsh Posté le 01-12-2004 à 17:28:24
Voici la solution canonique à ce problème sous unix:
Code :
|
Marsh Posté le 01-12-2004 à 17:30:18
darkoli a écrit : J'ai compris l'énoncé de la façon suivante : |
Bah non, il suffit juste mettre tous les chiffres au cube.
Tu sais, on est que début décembre. C'est plus tard que ça viendra les problèmes intéressants et les fins de TP un peu alambiquées.
Marsh Posté le 01-12-2004 à 17:32:22
Lam's a écrit : Bah non, il suffit juste mettre tous les chiffres au cube. |
Bon ben ça enlève deux lignes à mon programme !
Marsh Posté le 03-12-2004 à 20:05:13
Ouais j'ai optimisé mon petit programme en utilisant une table où j'ai stocké les puissances (1^1, 1^2, ...) et je divise le temps de traitement par 6,651965484.
Marsh Posté le 01-12-2004 à 16:52:27
voila je dois faire un prog : on doit ecrire un prog qui affiche tous les nbr qui ont cette propriete : 153=1^3+5^3+3^3 et qui sont inferieur a 2 000 000 000 , sachant qu on doit partir a 0 et on fait tt le temps +1 qq un peut m aider car la je dois rendre ce prog et je vois tjs pas comment je dois faire !
Message édité par kelk 1 le 01-12-2004 à 17:13:14