begin process at 2008 07 06 13:02:56
1 205 544 membres
121 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FACTORIELLE QUI MARCHE JUSQU'A 415 CHIFFRES


Information sur la source

Catégorie :Maths & Algorithmes Classé sous : factorielle, math, calcul Niveau : Initié Date de création : 12/07/2002 Date de mise à jour : 13/07/2002 16:33:05 Vu : 2 362

Note :
9 / 10 - par 3 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

Moi, quand j'ai commence mon cours de programm. j'ai pose la question au prof: pourq. nous utilisons 2 algo (sans recursivite et avec) pour programmer factorielle si ils n'march. pas. (Ex: facto de 30 est nombre negatif).
Prof. ma expliqué quelque chose au sujet des registres et insuffisance de memoire (peut etre il a pense que si je parle franc. tres mal, je n'conn. pas la structure du PC). Explications pourqoui calculatrice d'Unix affiche result. de factorielle je n'ai pas demende - parfois  c'est plus intelleg. Dans 2 semaines j'ai montré result. du mon travail. Si vous voulez voir l'effet sur visage de votre prof. - essayez. Hi.
*************************
Si serieux: algo est  interess. J'ai indique 3 niveau parc. l'idee d'algo est bonne.
*************************

Source

  • #include <stdio.h>
  • void main(void)
  • {
  • int b=10000;//base
  • int n,q,i,j,p,r,m,max;
  • int t[100];
  • int aff=0;
  • system("cls");
  • for(i=0;i<100;i++) t[i]=0;
  • printf("Votre nombre pour calculer factorielle (max=209):-->");scanf("%d",&n);
  • t[99]=n;
  • for(m=n-1;m>=2;m--){
  • q=0; for(i=99;i>0;i--)
  • {
  • p=t[i]*m+q; r=p%b;
  • q=(p-r)/b; t[i]=r;
  • }
  • t[0]=t[0]*m+q;
  • }
  • if(t[0]>9999) puts("Depassement de capacite: max 209 !!!");
  • j=0;
  • while (t[j]==0) {j++;max=j;}
  • printf("Factoriell de %d -->> ",n);
  • for(j=max;j<100;j++) {
  • if (t[j]<10) printf("000%d",t[j]);
  • else if (t[j]<100) printf("00%d",t[j]);
  • else if (t[j]<1000) printf("000%d",t[j]);
  • else printf("%d",t[j]);
  • }
  • for(i=0;i<aff;i++) printf("0");
  • }
#include <stdio.h>
void main(void)
{
int b=10000;//base
int n,q,i,j,p,r,m,max;
int t[100];
int aff=0;
system("cls");
for(i=0;i<100;i++) t[i]=0;
printf("Votre nombre pour calculer factorielle (max=209):-->");scanf("%d",&n);
t[99]=n;
for(m=n-1;m>=2;m--){
    q=0;    for(i=99;i>0;i--)
        {
                p=t[i]*m+q; r=p%b;
                q=(p-r)/b; t[i]=r;
        }
        t[0]=t[0]*m+q;
    }
    if(t[0]>9999) puts("Depassement de capacite: max 209 !!!");
    j=0;
    while (t[j]==0) {j++;max=j;}
printf("Factoriell de %d -->> ",n);
for(j=max;j<100;j++) {
if (t[j]<10) printf("000%d",t[j]);
else if (t[j]<100) printf("00%d",t[j]);
else if (t[j]<1000) printf("000%d",t[j]);
else printf("%d",t[j]);
}
for(i=0;i<aff;i++) printf("0");
}
  • signaler à un administrateur
    Commentaire de Lightness1024! le 27/07/2002 23:45:59

    meme si c pas tres clair et bien présenté le résultat est la et je confirme l'exactitude (vérification grace a un TI-89).
    d'ailleur le prof de prog n'aurais pas du faire une tete spéciale ou alors c lui ki n'y connais rien, on peu troujours créer des types de variables personnalisé avec tellement d'octets que l'on peu stoquer des nombres immenses facilement.

    derniere remarque: tu ne sais vraiment pas parler francais, tu es etranger ?

  • signaler à un administrateur
    Commentaire de natpoitiers le 28/07/2002 16:42:29

    Je comprend bien, mais je parle ... Grace a Dieu a l'informatique c'est p. import.
    Hi.

  • signaler à un administrateur
    Commentaire de Lightness1024! le 28/07/2002 17:32:18

    tu viens de quel pays ?

  • signaler à un administrateur
    Commentaire de TheBabyCool le 19/02/2003 20:38:06

    Le code(la présentation) est attroce(le pire que g vu de toute ma vie).
    Mais sinon il est exellent. bonne idée

Ajouter un commentaire

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS