Informatică, întrebare adresată de Steffy0216, 9 ani în urmă

Poate sa imi spuna cineva unde gresesc????

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



#include
using namespace std;
ifstream fin("sirul.in");
ofstream fout("sirul.out");
char aux[100], d[100];
int n, c;
int main()
{
fin>>n;
char a[2]="a";
char b[2]="b";
c=2;
while(c!=n)
{
strcpy(d,b);
strcat(d,a);
strcpy(aux,d);
strcpy(a,b);
strcpy(b,aux);
c++;
}
fout<<aux;
}

Răspunsuri la întrebare

Răspuns de express
1
Am gasit ceea ce ai gresit si am rescris putin codul tau. Am mai adaugat un vector si am inlocuit aux cu c. Succes!
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sirul.in");
ofstream fout("sirul.out");
char a[10005] = "a", b[10005] = "b", c[10005];
int n, k;
int main()
{
fin>>n;
strcpy(c, b);
strcat(b, a);
k=2;
while(k!=n)
{
strcpy(a, c);
strcpy(c, b);
strcat(b, a);

k++;
}
fout<<c;
}


Steffy0216: Mersi.
Steffy0216: L-am rulat. Merge ca uns!
Steffy0216: Poti te rog sa imi explici ce era gresit la rezolvarea mea? Ca sa stiu pe viitor. :)))
express: in primul rand tu folosesti doar 2vect..eu am folosit 3 vect...si de aici s-a cam schimbat cu totul...
Alte întrebări interesante