#982
Fiind date n
numere naturale, aflați câte dintre acestea se pot scrie ca sumă de puteri distincte ale unui număr natural k
.
Problema | puteri1 | Operații I/O |
![]() |
---|---|---|---|
Limita timp | 0.2 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #57378686 | Utilizator | |
Fișier | puteri1.cpp | Dimensiune | 2.91 KB |
Data încărcării | 28 Martie 2025, 08:45 | Scor / rezultat | Eroare de compilare |
puteri1.cpp:48:1: error: stray '\310' in program Explicație: ^ puteri1.cpp:48:1: error: stray '\233' in program puteri1.cpp:51:1: error: stray '\304' in program Folosim un ciclu pentru a calcula puterile succesive ale lui k (adică k^0, k^1, k^2, ..., k^m) și le stocăm într-un vector puteri. Continuăm până când k^m devine mai mare decât 1.000.000.000 (limita superioară a numerelor din input). ^ puteri1.cpp:51:1: error: stray '\203' in program puteri1.cpp:51:1: error: stray '\310' in program puteri1.cpp:51:1: error: stray '\231' in program puteri1.cpp:51:1: error: stray '\304' in program puteri1.cpp:51:1: error: stray '\203' in program puteri1.cpp:51:1: error: stray '\303' in program puteri1.cpp:51:1: error: stray '\256' in program puteri1.cpp:51:1: error: stray '\304' in program puteri1.cpp:51:1: error: stray '\203' in program puteri1.cpp:51:1: error: stray '\303' in program puteri1.cpp:51:1: error: stray '\242' in program puteri1.cpp:51:1: error: stray '\304' in program puteri1.cpp:51:1: error: stray '\203' in program puteri1.cpp:51:1: error: stray '\303' in program puteri1.cpp:51:1: error: stray '\242' in program puteri1.cpp:51:1: error: stray '\303' in program puteri1.cpp:51:1: error: stray '\242' in program puteri1.cpp:51:187: error: too many decimal points in number Folosim un ciclu pentru a calcula puterile succesive ale lui k (adică k^0, k^1, k^2, ..., k^m) și le stocăm într-un vector puteri. Continuăm până când k^m devine mai mare decât 1.000.000.000 (limita superioară a numerelor din input). ^ puteri1.cpp:51:1: error: stray '\304' in program Folosim un ciclu pentru a calcula puterile succesive ale lui k (adică k^0, k^1, k^2, ..., k^m) și le stocăm într-un vector puteri. Continuăm până când k^m devine mai mare decât 1.000.000.000 (limita superioară a numerelor din input). ^ puteri1.cpp:51:1: error: stray '\203' in program puteri1.cpp:53:1: error: stray '\304' in program Verificarea fiecărui număr: ^ puteri1.cpp:53:1: error: stray '\203' in program puteri1.cpp:53:1: error: stray '\304' in program puteri1.cpp:53:1: error: stray '\203' in program puteri1.cpp:55:1: error: stray '\304' in program Pentru fiecare număr din vectorul numere, folosim funcția poateFiSuma care verifică dacă numărul respectiv poate fi scris ca sumă de puteri distincte ale lui k. Aceasta se face printr-o abordare de "sumă de subseturi" folosind puterile lui k. ^ puteri1.cpp:55:1: error: stray '\203' in program puteri1.cpp:55:1: error: stray '\310' in program puteri1.cpp:55:1: error: stray '\233' in program puteri1.cpp:55:1: error: stray '\304' in program puteri1.cpp:55:1: error: stray '\203' in program puteri1.cpp:55:1: error: stray '\304' in program puteri1.cpp:55:1: error: stray '\203' in program puteri1.cpp:55:1: error: stray '\304' in program puteri1.cpp:55:1: error: stray '\203' in program puteri1.cpp:55:1: error: stray '\304' in program puteri1.cpp:55:1: error: stray '\203' in program puteri1.cpp:59:1: error: stray '\304' in program Dacă un număr poate fi scris ca sumă de puteri distincte ale lui k, incrementăm un contor și la final afișăm acest contor. ^ puteri1.cpp:59:1: error: stray '\203' in program puteri1.cpp:59:1: error: stray '\304' in program puteri1.cpp:59:1: error: stray '\203' in program puteri1.cpp:59:1: error: stray '\304' in program puteri1.cpp:59:1: error: stray '\203' in program puteri1.cpp:59:1: error: stray '\304' in program puteri1.cpp:59:1: error: stray '\203' in program puteri1.cpp:59:1: error: stray '\310' in program puteri1.cpp:59:1: error: stray '\231' in program puteri1.cpp:59:1: error: stray '\310' in program puteri1.cpp:59:1: error: stray '\231' in program puteri1.cpp:59:1: error: stray '\304' in program puteri1.cpp:59:1: error: stray '\203' in program puteri1.cpp:67:1: error: stray '\310' in program Ieșire: ^ puteri1.cpp:67:1: error: stray '\231' in program puteri1.cpp:71:1: error: stray '\310' in program Explicație pentru exemplu: ^ puteri1.cpp:71:1: error: stray '\233' in program puteri1.cpp:72:1: error: stray '\304' in program 37 poate fi scris ca sumă de puteri distincte ale lui 3: 3^3 + 3^2 + 3^0 = 27 + 9 + 1 = 37. ^ puteri1.cpp:72:1: error: stray '\203' in program puteri1.cpp:74:1: error: stray '\304' in program 12 poate fi scris ca sumă de puteri distincte ale lui 3: 3^2 + 3^1 = 9 + 3 = 12. ^ puteri1.cpp:74:1: error: stray '\203' in program puteri1.cpp:76:1: error: stray '\304' in program 9 poate fi scris ca sumă de puteri distincte ale lui 3: 3^2 = 9. ^ puteri1.cpp:76:1: error: stray '\203' in program puteri1.cpp:78:1: error: stray '\304' in program Numărul 6 nu poate fi scris astfel (nu există o combinație de puteri distincte ale lui 3 care să dea 6) și nici 5 (nu poate fi scris ca sumă de puteri distincte ale lui 3). ^ puteri1.cpp:78:1: error: stray '\203' in program puteri1.cpp:78:1: error: stray '\304' in program puteri1.cpp:78:1: error: stray '\203' in program puteri1.cpp:78:1: error: stray '\310' in program puteri1.cpp:78:1: error: stray '\233' in program puteri1.cpp:78:1: error: stray '\304' in program puteri1.cpp:78:1: error: stray '\203' in program puteri1.cpp:78:1: error: stray '\310' in program puteri1.cpp:78:1: error: stray '\231' in program puteri1.cpp:78:1: error: stray '\304' in program puteri1.cpp:78:1: error: stray '\203' in program puteri1.cpp:83:1: error: stray '\304' in program Calcularea puterilor lui k: Este O(log(N)) deoarece calculăm puterile lui k până la 1.000.000.000. ^ puteri1.cpp:83:1: error: stray '\203' in program puteri1.cpp:83:1: error: stray '\303' in program puteri1.cpp:83:1: error: stray '\242' in program puteri1.cpp:83:1: error: stray '\304' in program puteri1.cpp:83:1: error: stray '\203' in program puteri1.cpp:83:88: error: too many decimal points in number Calcularea puterilor lui k: Este O(log(N)) deoarece calculăm puterile lui k până la 1.000.000.000. ^ puteri1.cpp:85:1: error: stray '\304' in program Verificarea fiecărui număr: Pentru fiecare număr, iterăm prin puterile lui k, deci complexitatea totală pentru verificarea tuturor numerelor este O(n * log(N)). ^ puteri1.cpp:85:1: error: stray '\203' in program puteri1.cpp:85:1: error: stray '\304' in program puteri1.cpp:85:1: error: stray '\203' in program puteri1.cpp:85:1: error: stray '\304' in program puteri1.cpp:85:1: error: stray '\203' in program puteri1.cpp:85:1: error: stray '\304' in program puteri1.cpp:85:1: error: stray '\203' in program puteri1.cpp:85:1: error: stray '\304' in program puteri1.cpp:85:1: error: stray '\203' in program puteri1.cpp:87:1: error: stray '\310' in program Programul va funcționa eficient chiar și pentru valorile mari ale lui n (până la 100.000). ^ puteri1.cpp:87:1: error: stray '\233' in program puteri1.cpp:87:1: error: stray '\310' in program puteri1.cpp:87:1: error: stray '\231' in program puteri1.cpp:87:1: error: stray '\303' in program puteri1.cpp:87:1: error: stray '\242' in program puteri1.cpp:87:1: error: stray '\304' in program puteri1.cpp:87:1: error: stray '\203' in program puteri1.cpp:48:1: error: 'Explica' does not name a type Explicație: ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema puteri1 face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.