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
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;
}
#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.
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Geografie,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă