Je suis en train de calculer 1 + 1 * 2 + 1 * 2 * 3 + 1 * 2 * 3 * 4 + ... + 1 * 2 * ... * n
où n
est la saisie de l'utilisateur.
Il travaille pour des valeurs de n
jusqu'à 12. Je veux calculer la somme de n = 13
, n = 14
et n = 15
. Comment dois-je faire en C89? Comme je sais, je peux utiliser unsigned long long int
seulement en C99 ou C11.
- Entrée 13, résultat 2455009817, devrait 6749977113
- Entrée 14, résultat 3733955097, devrait 93928268313
- Entrée 15, résultat 1443297817, devrait 1401602636313
Mon code:
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned long int n;
unsigned long int P = 1;
int i;
unsigned long int sum = 0;
scanf("%lu", &n);
for(i = 1; i <= n; i++)
{
P *= i;
sum += P;
}
printf("%lu", sum);
return 0;
}