I. 1.
a. x % 2 == 0 && (y + 1) % 2 != 0
I. 2.
d. 23022100
I. 3.
c. {2, 6, 4, 1, 3, 5}
I. 4.
d. x[10].tip
I. 5.
b. 15
II. 1.
a. 9
b. 6, 7
c.
#include <iostream>
#include <iostream>
using namespace std;
int n, x, p = 1;
int main(){
cin>>n;
for(int i = 1; i <= n; i ++){
cin>>x;
do{
x = x / 3;
}while(x > 3);
if(x != 0)
p = p * x;
}
cout<<p;
return 0;
}
II. 2.
2, 3, 1, 7
II. 3.
for(i = 0; i < 9; i ++)
for(j = 0; j < 9; j ++){
if((i + j) <= 3 || (i + j) >= 13)
a[i][j] = 4;
else
a[i][j] = 2;
}
III. 1.
int majImp(int a, int b){
for(int x = a; x <= b; x ++){
int sp = 0, si = 0;
for(int i = 2; i <= (x / 2); i ++){
if(i % 2 == 0 && x % i == 0)
sp += i;
if(i % 2 != 0 && x % i == 0)
si += i;
}
if(si > sp)
return x;
}
return 0;
}
III. 2.
#include <iostream>
using namespace std;
char s[105];
int n = -1;
bool ok = true;
int main(){
cin.getline(s, 100);
char * p = strtok(s, " ");
while(p != NULL){
if(n == -1)
n = strlen(p);
else
if(n != strlen(p))
ok = false;
p = strtok(NULL, " ");
}
if(ok)
cout<<"DA "<<n;
else
cout<<"NU";
return 0;
}
III. 3.
b.
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("bac.txt");
int x, y = -1, st_m, dr_m, sz = 1, sz_m = 1, it, st_c;
bool g = false;
int main(){
while(in>>x){
it++;
if(y >= 10 && x >= 10){
if((y + 1) == x)
sz++;
else
sz = 1, st_c = it;
}
if(sz_m < sz){
g = true;
sz_m = sz;
st_m = st_c;
dr_m = it;
}
y = x;
}
in.close();
if(g){
it = 0;
in.open("bac.txt");
while(in>>x){
it++;
if(it >= st_m && it <= dr_m)
cout<<x<<" ";
}
in.close();
}
else{
cout<<"nu exista";
}
return 0;
}
a.
Algoritmul proiectat citeste pe rand toate numerele din fisier in variabila x
Variabila it reprezinta nr. de ordine in fisier al lui x.
Variabila sz reprezinta lungimea scarii curente, iar valoarea ei se incrementeaza
daca (y + 1) < x, in caz contrar este resetata la 1,
iar st_c reprezinta lungimea maxima a unei scari gasite in fisier.
dr_m reprezinta indexul din dreapta al celei mai lungi scari
st_m reprezinta indexul stang al celei mai lungi scari.
In cazul in care sz_m < sz, sz_m, dr_m, st_m sunt actualizate corespunzator
Variabila g reprezinta faptul ca am descoperit o scara in fisierul dat.
in functie de valoarea acesteia afisez rezultatul.
Complexitatea de timp a algoritmului este O(n), n fiind numarul de elemente
din fisier, deoarece parcurgem fisierul de maxim 2 ori, (odata pentru aflarea
scarii maxime, odata pentru afisarea acesteia)
Complexitatea de memorie este O(1).