#2527
Turnurile din Hanoi este un joc matematic sau, dacă vreți, un puzzle. Este format din trei tije A, B și C și un număr variabil de discuri, de diferite diametre. Inițial discurile sunt așezate în ordine descrescătoare a diametrelor pe tija A, de la vârf către bază, astfel încât să formeze un turn.
Scopul jocului este acela de a muta toate discurile de pe tija A pe tija C folosind ca tijă intermediară tija B, respectând următoarele reguli:
Cerința
Dacă se cunoaște numărul n de discuri aflate pe tija A, să se determine șirul mutărilor necesare pentru ca toate discurile să fie mutate pe tija C.
| Problema | hanoi | Operații I/O |
hanoi.in/hanoi.out
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #62464560 | Utilizator | |
| Fișier | hanoi.cpp | Dimensiune | 391 B |
| Data încărcării | 22 Ianuarie 2026, 10:25 | Scor/rezultat | Eroare de compilare |
hanoi.cpp: In function 'void hanoi(int, char, char, char)': hanoi.cpp:8:13: error: no match for 'operator<<' (operand types are 'std::ifstream {aka std::basic_ifstream<char>}' and 'char') fout<<a<<"->"<<b<<"\n"; ^ hanoi.cpp:8:13: note: candidates are: In file included from /usr/include/c++/4.8/string:52:0, 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 hanoi.cpp:1: /usr/include/c++/4.8/bits/basic_string.h:2753:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const std::basic_string<_CharT, _Traits, _Alloc>&) operator<<(basic_ostream<_CharT, _Traits>& __os, ^ /usr/include/c++/4.8/bits/basic_string.h:2753:5: note: template argument deduction/substitution failed: hanoi.cpp:8:15: note: 'std::ifstream {aka std::basic_ifstream<char>}' is not derived from 'std::basic_ostream<_CharT, _Traits>' fout<<a<<"->"<<b<<"\n"; ^ In file included from /usr/include/c++/4.8/istream:39:0, from /usr/include/c++/4.8/fstream:38, from hanoi.cpp:1: /usr/include/c++/4.8/ostream:471:5: note: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, _CharT) operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) ^ /usr/include/c++/4.8/ostream:471:5: note: template argument deduction/substitution failed: hanoi.cpp:8:15: note: 'std::ifstream {aka std::basic_ifstream<char>}' is not derived from 'std::basic_ostream<_CharT, _Traits>' fout<<a<<"->"<<b<<"\n"; ^ In file included from /usr/include/c++/4.8/istream:39:0, from /usr/include/c++/4.8/fstream:38, from hanoi.cpp:1: /usr/include/c++/4.8/ostream:476:5: note: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, char) operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) ^ /usr/include/c++/4.8/ostream:476:5: note: template argument deduction/substitution failed: hanoi.cpp:8:15: note: 'std::ifstream {aka std::basic_ifstream<char>}' is not derived from 'std::basic_ostream<_CharT, _Traits>' fout<<a<<"->"<<b<<"\n"; ^ In file included from /usr/include/c++/4.8/istream:39:0, from /usr/include/c++/4.8/fstream:38, from hanoi.cpp:1: /usr/include/c++/4.8/ostream:482:5: note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, char) operator<<(basic_ostream<char, _Traits>& __out, char __c) ^ /usr/include/c++/4.8/ostream:482:5: note: template argument deduction/substitution failed: hanoi.cpp:8:15: note: 'std::ifstream {aka std::basic_ifstream<char>}' is not derived from 'std::basic_ostream<char, _Traits>' fout<<a<<"->"<<b<<"\n"; ^ In file included from /usr/include/c++/4.8/istream:39:0, from /usr/include/c++/4.8/fstream:38, from hanoi.cpp:1: /usr/include/c++/4.8/ostream:488:5: note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, signed char) operator<<(basic_ostream<char, _Traits>& __out, signed char __c) ^ /usr/include/c++/4.8/ostream:488:5: note: template argument deduction/substitution failed: hanoi.cpp:8:15: note: 'std::ifstream {aka std::basic_ifstream<char>}' is not derived from 'std::basic_ostream<char, _Traits>' fout<<a<<"->"<<b<<"\n"; ^ In file included from /usr/include/c++/4.8/istream:39:0, from /usr/include/c++/4.8/fstream:38, from hanoi.cpp:1: /usr/include/c++/4.8/ostream:493:5: note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, unsigned char) operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c) ^ /usr/include/c++/4.8/ostream:493:5: note: template argument deduction/substitution failed: hanoi.cpp:8:15: note: 'std::ifstream {aka std::basic_ifstream<char>}' is not derived from 'std::basic_ostream<char, _Traits>' fout<<a<<"->"<<b<<"\n"; ^ In file included from /usr/include/c++/4.8/istream:39:0, from /usr/include/c++/4.8/fstream:38, from hanoi.cpp:1: /usr/include/c++/4.8/ostream:513:5: note: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const _CharT*) operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) ^ /usr/include/c++/4.8/ostream:513:5: note: template argument deduction/substitution failed: hanoi.cpp:8:15: note: 'std::ifstream {aka std::basic_ifstream<char>}' is not derived from 'std::basic_ostream<_CharT, _Traits>' fout<<a<<"->"<<b<<"\n"; ^ In file included from /usr/include/c++/4.8/ostream:612:0, from /usr/include/c++/4.8/istream:39, from /usr/include/c++/4.8/fstream:38, from hanoi.cpp:1: /usr/include/c++/4.8/bits/ostream.tcc:321:5: note: template<class _CharT, class _Traits> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const char*) operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) ^ /usr/include/c++/4.8/bits/ostream.tcc:321:5: note: template argument deduction/substitution failed: hanoi.cpp:8:15: note: 'std::ifstream {aka std::basic_ifstream<char>}' is not derived from 'std::basic_ostream<_CharT, _Traits>' fout<<a<<"->"<<b<<"\n"; ^ In file included from /usr/include/c++/4.8/istream:39:0, from /usr/include/c++/4.8/fstream:38, from hanoi.cpp:1: /usr/include/c++/4.8/ostream:530:5: note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const char*) operator<<(basic_ostream<char, _Traits>& __out, const char* __s) ^ /usr/include/c++/4.8/ostream:530:5: note: template argument deduction/substitution failed: hanoi.cpp:8:15: note: 'std::ifstream {aka std::basic_ifstream<char>}' is not derived from 'std::basic_ostream<char, _Traits>' fout<<a<<"->"<<b<<"\n"; ^ In file included from /usr/include/c++/4.8/istream:39:0, from /usr/include/c++/4.8/fstream:38, from hanoi.cpp:1: /usr/include/c++/4.8/ostream:543:5: note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const signed char*) operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s) ^ /usr/include/c++/4.8/ostream:543:5: note: template argument deduction/substitution failed: hanoi.cpp:8:15: note: 'std::ifstream {aka std::basic_ifstream<char>}' is not derived from 'std::basic_ostream<char, _Traits>' fout<<a<<"->"<<b<<"\n"; ^ In file included from /usr/include/c++/4.8/istream:39:0, from /usr/include/c++/4.8/fstream:38, from hanoi.cpp:1: /usr/include/c++/4.8/ostream:548:5: note: template<class _Traits> std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned char*) operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s) ^ /usr/include/c++/4.8/ostream:548:5: note: template argument deduction/substitution failed: hanoi.cpp:8:15: note: 'std::ifstream {aka std::basic_ifstream<char>}' is not derived from 'std::basic_ostream<char, _Traits>' fout<<a<<"->"<<b<<"\n"; ^ In file included from /usr/include/c++/4.8/istream:39:0, from /usr/include/c++/4.8/fstream:38, from hanoi.cpp:1: /usr/include/c++/4.8/ostream:602:5: note: template<class _CharT, class _Traits, class _Tp> std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&&, const _Tp&) operator<<(basic_ostream<_CharT, _Traits>&& __os, const _Tp& __x) ^ /usr/include/c++/4.8/ostream:602:5: note: template argument deduction/substitution failed: hanoi.cpp:8:15: note: 'std::ifstream {aka std::basic_ifstream<char>}' is not derived from 'std::basic_ostream<_CharT, _Traits>' fout<<a<<"->"<<b<<"\n"; ^ hanoi.cpp:12:13: error: expected ';' before 'fout' fout<<a<<"->"<<b<<"\n"; ^ hanoi.cpp:14:5: error: expected ';' before '}' token } ^ hanoi.cpp: In function 'int main()': hanoi.cpp:19:9: error: expected ';' before 'n' fin n; ^ hanoi.cpp:19:10: warning: statement has no effect [-Wunused-value] fin n; ^ hanoi.cpp:20:10: warning: unused variable 'a' [-Wunused-variable] char a,b,c; ^ hanoi.cpp:20:12: warning: unused variable 'b' [-Wunused-variable] char a,b,c; ^ hanoi.cpp:20:14: warning: unused variable 'c' [-Wunused-variable] char a,b,c; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema hanoi 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ă.