Care este rezultatul întors de apelul funcției zile_lucratoare(365)?
int este_lucratoare(int zi) {
return (zi % 7 != 0 && zi % 7 != 6);
}
int zile_lucratoare(int an) {
int zile = 0;
for (int zi = 1; zi <= an; zi++) {
if (este_lucratoare(zi))
zile++;
}
return zile;
}
- 258
- 262
- 251
- 261
- 250
- 200
Funcția numără zilele zi dintre 1 și 365 al căror rest la împărțirea cu 7 nu este nici 0, nici 6. Restul 0 apare la 7,14,…,364, adică de 52 de ori, iar restul 6 la 6,13,…,363, tot de 52 de ori.Rămân 365−52−52=261 de zile.Ce valoare va avea variabila m în urma execuției instrucțiunii de mai jos, unde abs(x) calculează modulul lui x?
m=(a+b+abs(a-b))/2;
a-b- maximul dintre
a și b - valoarea lui
a - valoarea lui
b a+b- minimul dintre
a și b
Dacă a≥b, atunci ∣a−b∣=a−b și m=2a+b+a−b=a; dacă a<b, atunci ∣a−b∣=b−a și m=22b=b. În ambele cazuri m este cel mai mare dintre cele două numere (numărătorul este par, deci împărțirea întreagă nu pierde nimic).Fie secvența de program de mai jos, unde n și i sunt variabile de tip întreg, iar a și b sunt două tablouri unidimensionale (vectori) de întregi.Dacă n=6 și a=(2,1,5,3,4,6), b=(1,3,5,2,4,6), atunci, după rularea secvenței de mai jos, cele două variabile a și b vor fi:
for(i=0;i<n;i++) a[i]=a[b[n-i-1]-1];
for(i=0;i<n;i++) b[n-i-1]=b[a[i]-1];
a=(1,2,3,4,5,6), b=(6,5,4,3,2,1)a=(6,5,4,3,2,1), b=(6,5,4,3,2,1)a=(1,3,5,2,4,6), b=(2,1,5,3,4,6)a=(2,1,5,3,4,6), b=(1,3,5,2,4,6)a=(6,3,3,4,3,6), b=(6,5,5,5,5,6)a=(1,2,3,4,5,6), b=(1,2,3,4,5,6)
Atribuirile se fac pe loc, deci valorile deja modificate sunt refolosite. Prima buclă: a[0]=a[5]=6, a[1]=a[3]=3, a[2]=a[1]=3 (valoarea nouă), a[3]=a[4]=4, a[4]=a[2]=3, a[5]=a[0]=6, deci a=(6,3,3,4,3,6).A doua buclă: b[5]=b[5]=6, b[4]=b[2]=5, b[3]=b[2]=5, b[2]=b[3]=5, b[1]=b[2]=5, b[0]=b[5]=6, deci b=(6,5,5,5,5,6).Un arbore cu 9 noduri, numerotate de la 1 la 9, este memorat cu ajutorul vectorului de „tați” astfel: t=(0,1,1,2,1,2,2,5,5). Numărul de frunze ale arborelui este:
- 6
- 7
- 5
- 9
- 3
- 4
Nodurile care apar ca tată în vector sunt 1, 2 și 5; celelalte noduri nu au fii. Frunzele sunt deci 3,4,6,7,8,9, adică 6 noduri.Folosim metoda backtracking pentru a genera numere naturale în ordine crescătoare utilizând cifrele 0, 1, 2, 3, 4, 5 și 6. Primele 10 numere generate sunt 0,1,2,3,4,5,6,10,11,12. Care este al 256-lea număr generat?
- 503
- 444
- 466
- 555
- 501
- 513
Numerele scrise doar cu cifrele 0–6, luate în ordine crescătoare, sunt exact scrierile în baza 7 ale numerelor 0,1,2,… Al 256-lea număr generat corespunde deci lui 255.Cum 255=5⋅49+1⋅7+3, scrierea lui 255 în baza 7 este 513.