#include <stdio.h>
int main()
{
int data[9][9];
while (scanf("%d", &data[0][0])){
int i, j, k;
int answer = 1;
for (i = 0; i <= 8; i++)
for (j = 0; j <= 8; j++){
if(i==0&&j==0)
continue;
scanf("%d",&data[i][j]);
}
/*橫列判斷是否有數值重複*/
for (k = 0; k <= 8; k++){
for (i = 0; i <= 8; i++){
for (j = 0; j <= 8; j++)
if (data[k][i] == data[k][j] && i != j){
answer = 0;
}
}
}
/*直行判斷是否有數值重複*/
for (k = 0; k <= 8; k++){
for (i = 0; i <= 8; i++){
for (j = 0; j <= 8; j++)
if (data[i][k] == data[j][k] && i != j){
answer = 0;
}
}
}
/*九宮格判斷加起來是否等於45*/
for (i = 0; i <= 6; i += 3){
for (j = 0; j <= 6; j += 3){
if ( ( data[i][j] + data[i][j+1] + data[i][j+2] +
data[i+1][j] + data[i+1][j+1] + data [i+1][j+2] +
data[i+2][j] +data[i+2][j+1] + data[i+2][j+2] )
!= 45 )
answer = 0;
}
}
if (answer == 1)
printf("yes\n");
else
printf("no\n");
}
return 0;
}
一直出現逾時,我自己跑是ok 不知道問題出在哪 請高手幫忙解答
我沒看裡面程式碼
不過
while (scanf("%d", &data[0][0])){
這行請改成
while (scanf("%d", &data[0][0])!=EOF){
這樣應該可以解決TLE的問題
我沒看裡面程式碼
不過
while (scanf("%d", &data[0][0])){
這行請改成
while (scanf("%d", &data[0][0])!=EOF){
這樣應該可以解決TLE的問題