朱色虫居
Pages
Home
Featured Posts
2006/10/11
541-Error Correction
<br /> /* <br /> "Error Correction"<br /> Level:1.5<br /> Date:2006/10/10<br /> 技巧: Corrupt:有兩列or兩行以上 有error<br /> 只有一列 or 只有一行 有error<br /> Change bit:只有一列 and 只有一行 有error<br /> OK:沒有任何error <br /> */<br /> #include <stdio.h><br /> #define SIZE 100<br /> main(){<br /> int matrix[SIZE][SIZE]={0};<br /> int i=0,j=0,n=0,row=0,column=0,sum=0;<br /> <br /> BEGIN:<br /> while(scanf("%d",&n)==1 && n!=0){<br /> column = row = 0; <br /> for(i=0;i < n;i++) for(j=0;j < n;j++) scanf("%d",&matrix[i][j]); for(i=0;i < n;i++){ sum=0; for(j=0;j < n;j++){ sum += matrix[i][j]; } if(sum%2 != 0 && row == 0) row = i+1; /* 記錄第幾列有error */ else if(sum%2 !=0 && row > 0){<br /> printf("Corrupt\n");<br /> goto BEGIN;<br /> } <br /> }<br /> <br /> for(j=0;j < n;j++){ sum = 0; for(i=0;i < n;i++){ sum += matrix[i][j]; } if(sum%2 != 0 && column == 0) column = j+1; /* 記錄第幾行有error */ else if(sum%2 !=0 && column >0){<br /> printf("Corrupt\n");<br /> goto BEGIN;<br /> } <br /> }<br /> if(row > 0){<br /> if(column > 0)<br /> printf("Change bit (%d,%d)\n",row,column);<br /> else<br /> printf("Corrupt\n"); <br /> goto BEGIN; <br /> }<br /> if(column > 0)<br /> printf("Corrupt\n");<br /> else<br /> printf("OK\n"); <br /> } <br /> }<br />
No comments:
Post a Comment
Newer Post
Older Post
Home
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment