Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include<iostream>
  3.  
  4. using namespace std;
  5.  
  6. int sudoku[9][9] = {
  7. {1,2,3,4,5,6,7,8,9},
  8. {1,2,3,4,5,6,7,8,9},
  9. {1,2,3,4,5,6,7,8,9},
  10. { 1,2,3,4,5,6,7,8,9 },
  11. { 1,2,3,4,5,6,7,8,9 },
  12. { 1,2,3,4,5,6,7,8,9 },
  13. { 1,2,3,4,5,6,7,8,9 },
  14. { 1,2,3,4,5,6,7,8,9 },
  15. { 1,2,3,4,5,6,7,8,9 }
  16.  
  17. };
  18.  
  19. bool isValidRow(int row)
  20. {
  21. const int size = 9;
  22. bool isMet[size];
  23. for (int i=0;i<size;i++)
  24. {
  25. isMet[i] = false;
  26. }
  27. for (int i = 0; i < 9; i++) {
  28. int value = isMet[sudoku[row][i]];
  29. if (value == 0)
  30. {
  31. return false;
  32.  
  33. }
  34. if (isMet[value-1])
  35. {
  36. return false;
  37. }
  38. isMet[value - 1] = true;
  39. }
  40. return true;
  41. }
  42.  
  43. bool isValidCol(int col)
  44. {
  45. const int size = 9;
  46. bool isMet[size];
  47. for (int i = 0; i < 9; i++)
  48. {
  49. isMet[i] = false;
  50. }
  51. for (int i = 0; i < size; i++)
  52. {
  53. int value = sudoku[i][col];
  54. if (i == 0)
  55. {
  56. return false;
  57. }
  58. if (isMet[value - 1])
  59. {
  60. return false;
  61.  
  62. }
  63. isMet[value - 1] = true;
  64. }
  65. return true;
  66. }
  67. bool isValidBlock(int row, int col)
  68. {
  69. const int size = 9;
  70. bool isMet[size];
  71. for (int i = 0; i<size; i++)
  72. {
  73. isMet[i] = false;
  74. }
  75. for (int i = 0; i < 3; i++)
  76. { for (int j=0;j<3;j++)
  77. {
  78. int value = sudoku[row + i][col + i];
  79. if (value == 0)
  80. {
  81. return false;
  82.  
  83. }
  84. if (isMet[value - 1])
  85. {
  86. return false;
  87.  
  88. }
  89. isMet[value - 1] = true;
  90. }
  91. return true;
  92. }
  93. }
  94.  
  95. bool isValidSolution()
  96. {
  97. const int size = 9;
  98. for (int i = 0; i < size; i++)
  99. {
  100. if (!isValidRow(i) || !isValidCol(i))
  101. {
  102. return false;
  103. }
  104. }
  105. for (int i = 0; i < size; i += 3)
  106. {
  107. for (int j = 0; j < size; j+=3)
  108. {
  109. if (!isValidBlock(i, j)) {
  110. return false;
  111. }
  112.  
  113. }
  114.  
  115. }
  116. return true;
  117.  
  118. }
  119. unsigned long int fib(int n)
  120. {
  121. if (n == 1 || n == 2)
  122. {
  123. return 1;
  124. }
  125. return fib(n - 1) + fib(n - 2);
  126. }
  127. bool isValidNumberAtPositon9(int row, int col, int value)
  128. {
  129. const int size = 9;
  130. for (int i = 0; i < size; i++)
  131. {
  132. if (sudoku[i][col] == value)
  133. {
  134. return false;
  135. }
  136. if (sudoku[row][i] == value)
  137. {
  138. return false;
  139. }
  140.  
  141. }
  142. int x = row - (row % 3);
  143. int y = col - (col % 3);
  144. for (int i = 0; i < 3; i++)
  145. {
  146. for (int j = 0; j < 3; j++) {
  147. if (sudoku[x+i][y+j]==value)
  148. {
  149. return false;
  150. }
  151. }
  152. return true;
  153. }
  154.  
  155.  
  156. }
  157.  
  158. int main()
  159. {
  160. const int size = 9;
  161. for (int i = 0; i < size; i++)
  162. {
  163. for (int j=0;j<size;j++)
  164. {
  165. if (sudoku[i][j] != 0)
  166. {
  167. continue;
  168. }
  169. for (int num = 1; num <= 9; num++)
  170. {
  171. if ()
  172. }
  173. }
  174. }
  175. cout << fib(200) << endl;
  176.  
  177.  
  178. return 0;
  179. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement