fork download
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cmath>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. void HanoiTower(int num, int from, int by, int to)
  9. {
  10. if (num == 1) printf("%d %d\n", from, to);
  11. else
  12. {
  13. HanoiTower(num - 1, from, to, by);
  14. printf("%d %d \n", from, to);
  15. HanoiTower(num - 1, by, from, to);
  16. }
  17. }
  18.  
  19. int main(void)
  20. {
  21. int N;
  22. cin >> N;
  23.  
  24. string a = to_string(pow(2, N));
  25.  
  26. int x = a.find('.'); //pow 함수 결과가 실수형이기에 소수점 찾기
  27. a = a.substr(0, x); //소수점 앞자리만 나오게하기
  28. a[a.length() - 1] -= 1; //string a에 대한 마지막 위치의 인덱스 값에 -1
  29.  
  30. cout << a << endl;
  31.  
  32. if(N <= 20)
  33. HanoiTower(N, 1, 2, 3);
  34.  
  35. return 0;
  36. }
Success #stdin #stdout 0s 4504KB
stdin
3
stdout
7
1 3
1 2 
3 2
1 3 
2 1
2 3 
1 3