infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Ursaciuc Adrian din Aprilie 02, 2014, 18:14:43



Titlul: Probleme Informatica C++
Scris de: Ursaciuc Adrian din Aprilie 02, 2014, 18:14:43
Buna!
Am nevoie de ajutor la cateva probleme de informatica in C++.
Acestea ar fi:

1)Se citesc intr-un vector n numere intregi sa se afiseze lungimea maxima a unei secvente ce cuprinde numere egale.


2)Sa se sorteze elementele unui vector crescator dupa suma cifrelor impare.


3)Sa se citeasca un numar si sa se introduca intr-un vector cifrele reprezentarii in baza 7 a numarului respectiv.


4)Se citeste un numar, verificati cate numere prime de doua cifre se pot forma din cifrele sale.



Cam astea ar fi.

MLTUMESC ANTICIPAT!

Scuze ca le cer asa, dar am avut niste probleme de sanatate si am lipsit 3 saptamani si nu prea am inteles si pentru ca am lipsit la un test o sa imi puna nota pe tema asta.


Titlul: Răspuns: Probleme Informatica C++
Scris de: Jurj Andrei din Aprilie 02, 2014, 21:06:21
1)
Cod:
#include<iostream>
using namespace std ;
int v[1005] ;
int main()
{ int n , i , j , l , lmax = 1 ,
 cin >> n ;
 for ( i = 1 ; i <= n ; ++i )
       cin >> v[i] ;
 for ( i = 1 ; i < n ; ++i )
     { if ( v[i] == v[i+1] ) { j = i ;
                                    while( v[j] == v[i] && j <= n )
                                       ++j ;
                                    l = j - i + 1 ;
                                   if ( l > lmax ) lmax =  l ;  
                                 }      
     }
 cout << lmax ;
}
La problema a 2 iei un algoritm de sortare pe care il stii si in loc de vectori vei compara suma cifrelor impare ale numerelor(puse intr-un alt vector )

Pentru 2 ar veni ceva de genu
Cod:
for ( i = 1 ; i <= n ; ++i )
  { cin >> v[i] ;
    x=v[i] ; si = 0 ;
    while(x)
    {if(x%2==1) si = si + x % 10 ;
     x = x / 10 ;
    }
   s[i] = si ;
  }
 do{inter = 0 ;
      for(i = 1 ; i < n ; ++i )
            if ( s[i] > s[i+1] )
               { int aux = s[i] ;
                   s[i] = s[i+1] ;
                   s[i+1] = aux ;
                   aux = v[i] ;
                   v[i] = v[i+1] ;
                   v[i+1] = aux ;
                 inter = 1 ;
             }
      }while(inter) ;
si apoi afisezi vectorul v.

La problema 3 trebuie sa fii facut la scoala trecerea dintr-o baza in alta si cifrele care o sa-ti dea la trecere le salvezi intr-un vector

La problema 4  ai mai multe variante..
Prima sa iei intr-un vector de frecventa toate nr prime pana la 100 si care contin cifrele nr sa le scrii sau iei toate cifrele nr intr-un vector si generezi toate variantele si apoi daca varianta generata este nr prim de 2 cifre.

Din ce-am vazut tu ai cam ratat tot capitolul vectori...