#1214
Inventie
Lui Mihai îi place matematica distractivă, sau poate mai mult distracția decât matematica. Pentru a scăpa de teme, el a inventat operația ”smile” notată cu semnul ☺
, operație care se aplică numerelor naturale nenule conform exemplelor de mai jos:
6☺4=210
9☺2=711
8☺5=313
7☺6=113
6☺6=12
6☺10=416
43☺1500=14571543
23☺23=46
Profesorul de matematică i-a promis nota 10
pentru invenție, numai dacă știe să determine corect numărul divizorilor pari pentru rezultatul obținut prin operația ”smile”. Astfel, Mihai a primit N
perechi de numere (a,b)
pentru care trebuie să calculeze a☺b
și să determine dacă rezultatul obținut are divizori pari.
Scrieți un program care citește un număr natural N
și N
perechi de numere naturale (a,b)
și afișează:
a) pentru fiecare pereche de numere (a,b)
, rezultatul a☺b
;
b) cel mai mic și cel mai mare rezultat a☺b
care nu are divizori pari.
ONI GIM 2015, Clasa a V-a
Problema | Inventie | Operații I/O |
![]() inventie.in /inventie.out
|
---|---|---|---|
Limita timp | 0.3 secunde | Limita memorie |
Total: 2 MB
/
Stivă 2 MB
|
Id soluție | #51565393 | Utilizator | |
Fișier | inventie.cpp | Dimensiune | 586 B |
Data încărcării | 12 Iulie 2024, 13:33 | Scor / rezultat | Eroare de compilare |
inventie.cpp: In function 'int main()': inventie.cpp:9:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=1; i<=n; i++){ ^ inventie.cpp:12:20: error: call of overloaded 'abs(long long unsigned int)' is ambiguous aux=abs(x-y); while(aux){a+=aux%10*m; m*=10; aux/=10;} ^ inventie.cpp:12:20: note: candidates are: In file included from /usr/include/c++/4.8/cstdlib:72:0, from /usr/include/c++/4.8/ext/string_conversions.h:41, from /usr/include/c++/4.8/bits/basic_string.h:2815, from /usr/include/c++/4.8/string:52, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from inventie.cpp:1: /usr/include/stdlib.h:775:12: note: int abs(int) extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur; ^ In file included from /usr/include/c++/4.8/ext/string_conversions.h:41:0, from /usr/include/c++/4.8/bits/basic_string.h:2815, from /usr/include/c++/4.8/string:52, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from inventie.cpp:1: /usr/include/c++/4.8/cstdlib:174:3: note: long long int std::abs(long long int) abs(long long __x) { return __builtin_llabs (__x); } ^ /usr/include/c++/4.8/cstdlib:166:3: note: long int std::abs(long int) abs(long __i) { return __builtin_labs(__i); } ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Inventie 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ă.