Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

Buna seara ! Va rog foarte frumos ! Nu-mi iese problema de mai jos . Va rog , ma puteti ajuta?


Să considerăm următorul şir:
a, b, ba, bab, babba, babbabab, ...

Cerinţă
Scrieţi un program care să determine care este cel de-al n-lea termen al şirului.

Date de intrare
Fişierul de intrare sirul.in conţine o singură linie pe care se află numărul natural n.

Date de ieşire
Fişierul de ieşire sirul.out va conţine o singură linie pe care se află al n-lea termen din şir.

Restricţii
1<=n<=20

Exemple
sirul.in sirul.out
4
bab

Multumesc frumos ! (este problema ,,sirul " de pe campion edu arhiva educationala )


boiustef: faci o asemănare cu şirul Fibonacci la această problemă?

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

#include <fstream>

#include <cstring>

using namespace std;

ifstream fin("sirul.in");

ofstream fout("sirul.out");

int n;

char a[6770],b[6770],c[6770];

int main()

{

   fin >> n;

   strcpy(a,"a");

   strcpy(b,"b");

   if (n==1) fout << a;

   else

   {

       if (n==2) fout << b;

       else

       {

           while (n>2)

           {

               strcpy(c,b);

               strcat(c,a);

               strcpy(a,b);

               strcpy(b,c);

               --n;

           }

           fout << c;

       }

   }

}

Explicație:

a,b,ba,bab,babba,babbabab, ...

este o analogie cu şirul Fibonacii: 1,1,2,3,5,8,13,...

numai că aici se concatenează două şiruri pentru al obţine pe următorul.

Valoarea lui n din şirul Fibonacci ne spune care este lungimea şirului de pe locul n. Din condiţie 1<=n<=20, am calculat al 20-lea termen al şirului Fibonacii şi este 6765, deaceea am declarat pentru termenii a,b,c acea dimensiune...

Sper că cunoşti funcţiile de prelucrare a sirurilor de caractere....


Utilizator anonim: mersiiiiii
boiustef: cu plăcere, sănătate + succese!
Utilizator anonim: Doamne , mersi , m-ai ajutat sa iau un zece . :) Sper ca nu te deranjez , te rog , ma mai ajuti cu o problema , la care tocmai am postat enuntul si se cheama ,, desen "(daca poti) :) te rog frumooooooooooos
Alte întrebări interesante