Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include<iostream>
- using namespace std;
- int sudoku[9][9] = {
- {1,2,3,4,5,6,7,8,9},
- {1,2,3,4,5,6,7,8,9},
- {1,2,3,4,5,6,7,8,9},
- { 1,2,3,4,5,6,7,8,9 },
- { 1,2,3,4,5,6,7,8,9 },
- { 1,2,3,4,5,6,7,8,9 },
- { 1,2,3,4,5,6,7,8,9 },
- { 1,2,3,4,5,6,7,8,9 },
- { 1,2,3,4,5,6,7,8,9 }
- };
- bool isValidRow(int row)
- {
- const int size = 9;
- bool isMet[size];
- for (int i=0;i<size;i++)
- {
- isMet[i] = false;
- }
- for (int i = 0; i < 9; i++) {
- int value = isMet[sudoku[row][i]];
- if (value == 0)
- {
- return false;
- }
- if (isMet[value-1])
- {
- return false;
- }
- isMet[value - 1] = true;
- }
- return true;
- }
- bool isValidCol(int col)
- {
- const int size = 9;
- bool isMet[size];
- for (int i = 0; i < 9; i++)
- {
- isMet[i] = false;
- }
- for (int i = 0; i < size; i++)
- {
- int value = sudoku[i][col];
- if (i == 0)
- {
- return false;
- }
- if (isMet[value - 1])
- {
- return false;
- }
- isMet[value - 1] = true;
- }
- return true;
- }
- bool isValidBlock(int row, int col)
- {
- const int size = 9;
- bool isMet[size];
- for (int i = 0; i<size; i++)
- {
- isMet[i] = false;
- }
- for (int i = 0; i < 3; i++)
- { for (int j=0;j<3;j++)
- {
- int value = sudoku[row + i][col + i];
- if (value == 0)
- {
- return false;
- }
- if (isMet[value - 1])
- {
- return false;
- }
- isMet[value - 1] = true;
- }
- return true;
- }
- }
- bool isValidSolution()
- {
- const int size = 9;
- for (int i = 0; i < size; i++)
- {
- if (!isValidRow(i) || !isValidCol(i))
- {
- return false;
- }
- }
- for (int i = 0; i < size; i += 3)
- {
- for (int j = 0; j < size; j+=3)
- {
- if (!isValidBlock(i, j)) {
- return false;
- }
- }
- }
- return true;
- }
- unsigned long int fib(int n)
- {
- if (n == 1 || n == 2)
- {
- return 1;
- }
- return fib(n - 1) + fib(n - 2);
- }
- bool isValidNumberAtPositon9(int row, int col, int value)
- {
- const int size = 9;
- for (int i = 0; i < size; i++)
- {
- if (sudoku[i][col] == value)
- {
- return false;
- }
- if (sudoku[row][i] == value)
- {
- return false;
- }
- }
- int x = row - (row % 3);
- int y = col - (col % 3);
- for (int i = 0; i < 3; i++)
- {
- for (int j = 0; j < 3; j++) {
- if (sudoku[x+i][y+j]==value)
- {
- return false;
- }
- }
- return true;
- }
- }
- int main()
- {
- const int size = 9;
- for (int i = 0; i < size; i++)
- {
- for (int j=0;j<size;j++)
- {
- if (sudoku[i][j] != 0)
- {
- continue;
- }
- for (int num = 1; num <= 9; num++)
- {
- if ()
- }
- }
- }
- cout << fib(200) << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement