Advertisement
a53

rotire25

a53
Apr 25th, 2022
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. int c,k;
  7. int x;
  8. ifstream f("rotire25.in");
  9. f>>c>>x>>k;
  10. ofstream g("rotire25.out");
  11. if(c==1)
  12. {
  13. int ultima=x%10;
  14. if(ultima==2)
  15. switch(k%4)
  16. {
  17. case 0: ultima=6;break;
  18. case 1: ultima=2;break;
  19. case 2: ultima=4;break;
  20. case 3: ultima=8;break;
  21. }
  22. if(ultima==3)
  23. switch(k%4)
  24. {
  25. case 0: ultima=1;break;
  26. case 1: ultima=3;break;
  27. case 2: ultima=9;break;
  28. case 3: ultima=7;break;
  29. }
  30. if(ultima==7)
  31. switch(k%4)
  32. {
  33. case 0: ultima=1;break;
  34. case 1: ultima=7;break;
  35. case 2: ultima=9;break;
  36. case 3: ultima=3;break;
  37. }
  38. if(ultima==8)
  39. switch(k%4)
  40. {
  41. case 0: ultima=6;break;
  42. case 1: ultima=8;break;
  43. case 2: ultima=4;break;
  44. case 3: ultima=2;break;
  45. }
  46.  
  47. while(x>9)
  48. x/=10;
  49. g<<ultima*x<<'\n';
  50. }
  51. else
  52. {
  53. int X1=-1,X2=-1;
  54. bool Ok5=true;
  55. while(x!=X2&&k)
  56. {
  57. X2=X1;
  58. X1=x;
  59. int sw=(Ok5?5:2); /// sw=un switch pentru a alterna transformarile
  60. x*=sw;
  61. int sol=0;
  62. while(x)
  63. {
  64. if(x%10)
  65. sol=sol*10+x%10;
  66. x/=10;
  67. }
  68. x=sol;
  69. --k;
  70. Ok5=!Ok5;
  71. }
  72. if(k%2)
  73. {
  74. int sw=(Ok5?5:2);
  75. x*=sw;
  76. int sol=0;
  77. while(x)
  78. {
  79. if(x%10)
  80. sol=sol*10+x%10;
  81. x/=10;
  82. }
  83. x=sol;
  84. }
  85. g<<x<<'\n';
  86. }
  87. return 0;
  88. }
  89.  
  90.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement