fork download
  1. /*
  2. Pertama menggunakan rekursi
  3.  
  4. Kedua menggunakan iterasi
  5.  
  6.  
  7. -----------CAHINFOR.COM-----------
  8. */
  9. #include <iostream>
  10. using namespace std;
  11. bool rek(char kampung,int hari){
  12. if(hari==0){
  13. if(kampung=='A') return true;
  14. return false;
  15. }
  16. if(kampung=='B'){
  17. if(rek('C',hari-1)) return true;
  18. return false;
  19. }
  20. if(kampung=='D'){
  21. if(rek('C',hari-1)||rek('B',hari-1)) return true;
  22. return false;
  23. }
  24. if(kampung=='C'){
  25. if(rek('A',hari-1)) return true;
  26. return false;
  27. }
  28. if(kampung=='A'){
  29. if(rek('B',hari-1)||rek('D',hari-1)) return true;
  30. return false;
  31. }
  32. return false;
  33. }
  34. int main(){
  35. int n,arr[4][1000];
  36. cout<<"Masukkan Hari:\t\n";
  37. cin>>n;
  38. if(rek('A',n)) cout<<"Bisa\n";
  39. else cout<<"Tidak\n";
  40. if(rek('B',n)) cout<<"Bisa\n";
  41. else cout<<"Tidak\n";
  42. if(rek('C',n)) cout<<"Bisa\n";
  43. else cout<<"Tidak\n";
  44. if(rek('D',n)) cout<<"Bisa\n";
  45. else cout<<"Tidak\n";
  46.  
  47. for(int i=0;i<=3;i++){
  48. arr[0][i] = false;
  49. arr[1][i] = false;
  50. arr[2][i] = false;
  51. arr[3][i] = false;
  52. }
  53. arr[0][0] = true;
  54. arr[1][2] = true;
  55. arr[2][1] = true;
  56. arr[3][2] = true;
  57. for(int i=3;i<=100;i++){
  58. //untuk kampung A (0)
  59. if(arr[3][i-1] || arr[1][i-1])
  60. arr[0][i] = true;
  61.  
  62. //untuk kampung B (1)
  63. if(arr[2][i-1])
  64. arr[1][i] = true;
  65.  
  66. //untuk kampung C (2)
  67. if(arr[0][i-1])
  68. arr[2][i] = true;
  69.  
  70. //untuk kampung D (3)
  71. if(arr[1][i-1] || arr[2][i-1])
  72. arr[3][i] = true;
  73.  
  74. }
  75. cout<<"_______________________\n";
  76. if(arr[0][n]) cout<<"Bisa\n";
  77. else cout<<"Tidak\n";
  78. if(arr[1][n]) cout<<"Bisa\n";
  79. else cout<<"Tidak\n";
  80. if(arr[2][n]) cout<<"Bisa\n";
  81. else cout<<"Tidak\n";
  82. if(arr[3][n]) cout<<"Bisa\n";
  83. else cout<<"Tidak\n";
  84. }
  85.  
Success #stdin #stdout 0s 4352KB
stdin
20
stdout
Masukkan Hari:	
Bisa
Bisa
Bisa
Bisa
_______________________
Bisa
Bisa
Bisa
Bisa