#9720: 為什麼每行每列每9宮格總和45就正確


myahi1234567 (andy chen)


先附上我的程式

然後如果今天測資是全部都是5的數獨,那不就錯誤了嗎,是否不夠嚴謹? 

#include<iostream>

#include<cstring>

#include<vector>

using namespace std;

 

 

bool judge(int array[]);

 

int main()

{

    string s;

    vector<string> answer;

    int sector[9][9],sline[9][9],hline[9][9];

    while(cin.peek()!=EOF)

    {

    bool right=true;

    int count=0;

    for(int i=0;i<9;i+=3)

    {

        for(int n=0;n<3;n++)

        {

            for(int var=i;var<i+3;var++)

            {

                for(int val=3*n;val<3*(n+1);val++)

                {

                    cin>>sector[var][val];

                    hline[n+i][count]=sector[var][val];

                    sline[count][n+i]=hline[n+i][count];

                    count++;

                    if(count==9)

                    {

                        count=0;

                    }

                }

            }

        }

    }

    for(int var=0;var<9;var++)

    {

            if(!(judge(sector[var])&&judge(sline[var])&&judge(hline[var])))

            {

                s="no";

                answer.push_back(s);     

                right=false;

                break;

            }  

    }

    if(right)

    {

        s="yes";

        answer.push_back(s);

    }

    }

    for(int var=0;var<answer.size()-1;var++)

    {

        cout<<answer[var]<<endl;

    }

    return 0;

}

 

bool judge(int array[])

{

    int var,val;

    bool judger=true;

    for(var=0;var<8;var++)

    {

        for(val=var+1;val<9;val++)

        {

            if(array[var]==array[val])

            {

                judger=false;

                break;

            }

        }

        if(!judger)

        {

            break;

        }

    }

    if(!judger)

    {

        return false;

    }

    else

    {

        return true;

    }

}