Suites arithmétiques

Fermé
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021 - 29 oct. 2021 à 16:25
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 - 29 oct. 2021 à 18:30
Bonjour j'ai un exercice en c à rendre pour ce soir et je ne sais pas si j'ai bien interpréter l'énoncé de l'exercice.

Enoncé :
Écrire la fonction suite_Bangkok qui retourne le n-ième terme de la suite définie ci-dessous :
◦ U0 = 1 pour tout n > 1 :
◦ Un+1 = Un2
-3 si n est multiple de 2 ( avec : Un2= Un * Un)
◦ Un+1 = Un +2 si n est multiple de 3.
Un+1 = Un2 -1 si n n’est pas multiple de 3.

J'ai déja rédiger le code en c selon mon interprétation de l'énoncé et j'aimerais avoir votre avis dessus.


De plus je ne vois pas comment traduire Un+1= Un^2 -3 ; Un=((U0^2)^n)-3 en laguage c et notament le puissance n.

Merci de vos réponse, je les attends avec impatience.

8 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
29 oct. 2021 à 16:33
Bonjour,

Pour commencer... il faut poster ton code correctement sur le forum.
Pour ça, tu dois utiliser les BALISES DE CODE.
Explications (à lire entièrement !! ) disponibles ici https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code


0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 Ambassadeur 1 557
29 oct. 2021 à 16:35
bonjour,
je pense que tu n'as pas compris l'énoncé.
avant de programmer, fais peut-être les calculs à la main.
0
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021
29 oct. 2021 à 16:41
Bonjour,

Oui c'est ce qui me semblait aussi, mais comme je ne comprends pas l'énoncé je n'arrive pas à imaginer les calculs
Car les faire à la main n'est pas un soucis.
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557 > Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021
29 oct. 2021 à 16:49
Sais-tu ce qu'est une suite de nombres?
0
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021 > yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024
29 oct. 2021 à 16:52
Oui une suite de nombres est une succession/séquence ordonnée de nombre entiers. C'est bien ca ?
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557 > Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021
29 oct. 2021 à 16:56
Comprends-tu que l'énoncé explique comment il faut calculer les nombres de la suite?
Peux-tu calculer les premiers nombres de cette suite?
0
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021 > yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024
29 oct. 2021 à 16:59
De quel suite car j'en ai 3 qui met son proposé si n est un multiple de 2, un multiple de 3 et si ce n'est pas un multiple de 3.
0
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021
29 oct. 2021 à 17:07
U0=5
U1=6
U2=7
U3=8
U4=9
U5=10
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557
29 oct. 2021 à 17:11
Parfait. Plus compliqué:
Il s'agit de la suite J, définie ainsi:
J{0} = 5
pour tout n>0:
si n est pair, J{n+1} = J{n} +1
si n est impair: J{n+1} = J{n} +2
Peux-tu calculer les premiers nombres de cette suite?
0
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021
29 oct. 2021 à 17:16
U0=5
U1=6
U2=8
U3=9
U4=11
U5=12

Ah daccord je pense avoir compris
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021
29 oct. 2021 à 17:17
Enfaite je vais devoir répeter ce processus jusqu'au n-ième terme demandé par l'utilisateur ?
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557
29 oct. 2021 à 17:33
C'est ainsi que je comprends l'énoncé, en effet.
0
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021
Modifié le 29 oct. 2021 à 17:55
Donc normalement je devrais avoir

U0=1
U1=0
U2=-3
U3=-1
U4=-2
0
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021
Modifié le 29 oct. 2021 à 18:11
int suite_bankok_inter(int n)
{
    int cpt=0;
    int somme=0;
    while(cpt!=n+1)
    {
        if (cpt%2==0)
        {
            somme=(somme*somme)-3;
            printf("%d ||%d\n",cpt,somme);
        }
        else if (cpt%3==0)
        {
            somme=somme +2;
            printf("%d ||%d\n",cpt,somme);
        }
        else if (cpt%3!=0)
        {
            somme=(somme*somme)-1;
            printf("%d ||%d\n",cpt,somme);
        }
        cpt++;
    }
}
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557
29 oct. 2021 à 18:04
as-tu lu la suggestion de Jordane en #1?
0
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021 > yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024
29 oct. 2021 à 18:09
Oui, mais j'ai du mal à m'y faire. Je n'ai pas fait les chose correctement ? Pourtant je le pensais
0
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021
29 oct. 2021 à 18:10
Voici la version récursive

int suite_bankok_recursive(int n,int cpt,int somme)
{
    if (n+1)
    {
        return somme;
    }
    else
    {
        if (cpt%2==0)
        {
            somme=somme*somme-3;
            printf("%d ||%d\n",cpt,somme);
        }
        else if (cpt%3==0)
        {
            somme=somme+2;
            printf("%d ||%d\n",cpt,somme);
        }
        else if (cpt%3!=0)
        {
            somme=somme*somme-1;
            printf("%d ||%d\n",cpt,somme);
            suite_bankok_recursive(n,cpt+1,somme);
        }
    }
}
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557
29 oct. 2021 à 18:12
la fonction ne retourne rien, contrairement à l'énoncé.
le nom de la variable
somme
est bizarrement choisi, non?
le test
if (cpt%3!=0)
me semble superflu. d'ailleurs, tu n'as prévu de
else
.
il serait plus élégant de n'avoir qu'une seule instruction
printf("%d ||%d\n",cpt,somme);
.
je pense que le while est correct, un
for
serait cependant plus clair.

peux-tu tester le code?
0
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021 > yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024
29 oct. 2021 à 18:13
Pour la fonction récursive ne j'ai rien qui s'affiche dans la consol mais cependant pour la fonction itérative oui
0
Jules_0055 Messages postés 14 Date d'inscription vendredi 29 octobre 2021 Statut Membre Dernière intervention 29 octobre 2021
29 oct. 2021 à 17:53
je devrais avoir quelque chose comme ca ?
0