Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Verificare existenta nr in sir.  (Citit de 1328 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Samurah
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« : Decembrie 09, 2013, 00:03:17 »

Salutare!
Am incercat dar nu imi iese,se da sirul : 1,3,5,11,21,43.

In pseudocod sirul arata cam asa:
Cod:
n.A,B,C naturale
citeste n.
A<-1
B<-3
pentru i<-1,n-2 executa
C<-A*2+B
A<-B
B<-C
sfarsit_pentru

--------
Se citeste numerele x,y . Afisati "DA" daca ele se gasesc in sirul dat altfel "NU".

Multumesc!
Memorat
minisudi
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 8



Vezi Profilul
« Răspunde #1 : Decembrie 09, 2013, 11:15:35 »

Salut nu ai dat toata cerinta pentru ca nu inteleg complet dar sper sa sune asa:Se da un sir de numere de la tastatura si sa se afiseze daca 2 numere x,y date si ele de la tastatura apar in sir.Pai daca cerinta este asa atunci trebuie sa creezi un vector in care sa pui elementele tale din sir si dupa sa faci o parcurgere.O sa iti dau si codul de la ce am zis eu.
#include<iostream.h>
int main()
{
int v[100],i,x,y,n,okx=0,oky=1;
cout<<"\n Dati numarul de elemente din sir";
cin>>n;
for(i=0;i<n;i++)      //Citim elementele din sir si le punem in vector
     cin>>v;
for(i=0;i<n;i++)
{
    if(v==x) okx=1;    //Daca gasim in sir ca macar o data exista x atunci okx=1(adica exista x in sir)
    if(v==y) oky=1;   //La fel ca la x dar pentru y.
}
if(okx==1 && oky==1) cout<<"\Da";
  else cout<<"\n Nu";
Memorat
minisudi
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 8



Vezi Profilul
« Răspunde #2 : Decembrie 09, 2013, 11:20:10 »

In pseudocod l-ai gresit pentru ca in memoria calculatorului o variabila nu poate lua la un moment dat decat o singura valoare,de aceea programul tau nu merge pentru ca A,B se schimba de fiecare data iar la final o sa ramana in memorie ultimile doua valori de aceea se foloseste un vector.
Memorat
romyk
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #3 : Decembrie 09, 2013, 14:10:22 »

Pseudocodul genereaza sirul 1,3,5,11,21,43,... , deci de la tastatura se citeste doar n, care ii lungimea sirului, x si y, numerele care trebuie cautate in sir. Se poate verifica si fara a memora sirul intr-un vector.
Cod:
int main()
{
    int n,A,B,C,x,y,i;
    int ok=0;
    cin>>n;
    cin>>x>>y;
    A=1;
    B=3;
    if(x==A||x==B)
       ok++;
    if(y==A||y==B)
       ok++;
    for(i=1;i<=n-2;i++){
       C=A*2+B;
       A=B;
       B=C;
       if(x==B)
         ok++;
       if(y==B)
        ok++;
   }
   if(ok==2)
    cout<<"DA";
   else
    cout<<"NU";

    return 0;
}
« Ultima modificare: Decembrie 09, 2013, 15:04:19 de către Prehari Romica » Memorat
minisudi
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 8



Vezi Profilul
« Răspunde #4 : Decembrie 09, 2013, 15:00:17 »

Am inteles acum pai trebuia sa explici mai bine cerinta
Memorat
Samurah
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« Răspunde #5 : Decembrie 09, 2013, 20:35:24 »

Pseudocodul genereaza sirul 1,3,5,11,21,43,... , deci de la tastatura se citeste doar n, care ii lungimea sirului, x si y, numerele care trebuie cautate in sir. Se poate verifica si fara a memora sirul intr-un vector.
Cod:
int main()
{
    int n,A,B,C,x,y,i;
    int ok=0;
    cin>>n;
    cin>>x>>y;
    A=1;
    B=3;
    if(x==A||x==B)
       ok++;
    if(y==A||y==B)
       ok++;
    for(i=1;i<=n-2;i++){
       C=A*2+B;
       A=B;
       B=C;
       if(x==B)
         ok++;
       if(y==B)
        ok++;
   }
   if(ok==2)
    cout<<"DA";
   else
    cout<<"NU";

    return 0;
}

Iti multumesc! Am adaptat algoritmul astfel incat sa nu necesite numarul de elemente din sirul acela!
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines