PCLP Laborator02: Problemset (extra)
Probleme extra propuse pentru PCLP Laborator02.
-
Pentru un număr n citit de la tastatură, afișați numărul m format din cifrele de rang par ale acestuia. Rangurile se numerotează de la dreapta la stanga cu 1, 2, 3,... .
n = 695643232 x9x6x3x3x m = 9633
-
Calculează cel mai mare divizor comun pentru două numere naturale nenule citite de la tastatură folosind algoritmul lui Euclid prin scăderi repetate.
-
De la tastatură se introduc
n
numere citite pe rând. Găsiţi cel mai mare divizor comun al acestor n numere, fără a folosi vectori.Hint
: Proprietate matematică. -
Fie ecuația
x1^3 + x2^3 + x3^3 = 0
. Găsiți toate valorile întregi pentrux1
,x2
,x3
din intervalul[-50, +50]
care sunt soluții pentru ecuatia data.Hint
: Gândiți ca un programator, nu ca un matematician!Follow-up
:x1^3 + x2^3 + x3^3 + x4^3 +x5^3 = 0
. Încercați să faceți eficient! -
Se dă
N
șiN
puncte în plan (date prin coordonatele realex
şiy
), citite de la tastatură, care reprezintă vârfurile unui poligon convex. Punctele sunt date în ordine trigonometrică (sau invers trigonometrică) să se calculeze: perimetrul poligonului convex aria poligonului convex.Hint
: Google it or check infoarena -
Rezolvați problema cadrane de pe Hackerrank.
-
Rezolvați problema swap-digits de pe Hackerrank.
-
Rezolvați problema divisors de pe Hackerrank.
-
Rezolvați problema hash de pe Hackerrank.
-
Rezolvați problema șir de pe Hackerrank.
-
Se introduce de la tastatură un număr natural
n
urmat den
numere întregi. Să se afișeze cele mai mici două numere și cele mai mari două numere fără a stoca toate numerele în memorie.Exemplu
- Input
8 5 6 12 -4 7 88 1 15
- Output
-4 1 15 88
-
Se citește de la tastatură un număr natural
n
diferit de 1. Să se calculeze ⌊log₂(n)⌋ și ⌊lg(n)⌋ fără funcții din math.h.Exemplu
- Input
602
- Output
log2(602) = 9 log10(602) = 2
-
Se citește de la tastatură, cifră cu cifră un CNP cu o dată existentă (fără 29 februarie, 32 decembrie, etc). Verificați dacă CNP-ul dat este valid.
Exemplu Valid
- Input
2720123439821
- Output
VALID
- Explicatie: Cifra de verificare pentru CNP-ul introdus este 1.
Exemplu Invalid
- Input
1620513231502
- Output
INVALID
- Explicatie: Cifra de verificare pentru CNP-ul introdus nu e 2.
Hint
: Algoritm calculare CNP -
Se introduce de la tastatură un număr natural
n
urmat den
perechi de puncte pe un plan 2D de formax y
. Să se afișeze pentru fiecare dintre puncte sinusul, cosinusul, tangenta și cotangenta pentru unghiul format între axa Ox și dreapta definită de punct și origine. Singurele funcții din math.h permise sunt sqrt() si pow().Exemplu
- Input
3 1 0 2 2 -2 -2
- Output
(1, 0): 0, 1, 0, inf (2, 2): 0.7, 0.7, 1, 1 (-2, -2): -0.7, -0.7, 1, 1
-
Boltz. Se citește de la tastatură un număr de jucători
n
, un număr naturalm
, și o cifrăc
. Cein
jucători iau rânduri și se joacă boltz de la1
până lam
. Regulile sunt simple: fiecare jucător spune numărul la care s-a ajuns, dar dacă acesta este divizibil sau conține cifrac
jucătorul spuneBoltz
și se schimbă ordinea jucătorilor, următorul număr fiind cel de după cel sărit.Exemplu
- Input:
3 10 7
- Output
P1 - 1 P2 - 2 P3 - 3 P1 - 4 P2 - 5 P3 - 6 P1 - Boltz P3 - 8 P2 - 9 P1 - 10
- Explicatie: Când se ajunge la numărul 7, in loc de 7 se spune Boltz, se inversează ordinea jucătorilor, deci în loc de jucătorul 2 urmează 3, iar el zice 8.
-
Se introduce la tastatură un număr natural
n
. Să se genereze un brad format dinn
triunghiuri, fiecare triunghii
având înăltimea dei + 2
, iar fiecare liniej
din triunghi arej + 1
caractere de "*",i = 0, 1, ..n - 1
,j = 0, 1, ..,i + 1
.Exemplu
- Input
4
- Output
* ** * ** *** * ** *** **** * ** *** **** *****