CCF 201412(2)之字形扫描

    xiaoxiao2021-03-25  49

    Java优化算法参见:https://my.oschina.net/chenzuhuang/blog/356073 #include <stdio.h> int main() { int i,j,n; int a[501][501]; int book[2501]={0}; int count=0; scanf("%d",&n); for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%d",&a[i][j]); i=1; j=1; int k; if(n==1) printf("%d\n",a[1][1]); else { k=1; while(i<=n&&j<=n&&k<=(2*n-1)) { if(i==n&&j==n) { book[count]=a[i][j]; count++; break; } else if(i==1&&j==1) { book[count]=a[i][j]; count++; j++; k++; book[count]=a[i][j]; count++; j--; i++; } else if(i==1&&j==n) { book[count]=a[i][j]; count++; i++; k++; book[count]=a[i][j]; count++; i++; j--; } else if(i==1) { book[count]=a[i][j]; count++; j++; k++; book[count]=a[i][j]; count++; i++; j--; } else if(j==n&&(i!=1)) { book[count]=a[i][j]; count++; i++; k++; book[count]=a[i][j]; count++; i++; j--; } else if(j==1&&!(i==n)) { book[count]=a[i][j]; count++; i++; k++; book[count]=a[i][j]; count++; i--; j++; } else if(i==n&&(j!=1)) { book[count]=a[i][j]; count++; j++; k++; book[count]=a[i][j]; count++; j++; i--; } else if(i==n&&j==1&&n%2==0) { book[count]=a[i][j]; count++; j++; k++; book[count]=a[i][j]; count++; j++; i--; } else if(i==n&&j==1&&n%2==1) { book[count]=a[i][j]; count++; i--; j++; } else if(k%2==1) { book[count]=a[i][j]; count++; i--; j++; } else if(k%2==0) { book[count]=a[i][j]; count++; i++; j--; } } } if(n!=1) { for(i=0;i<count;i++) printf("%d ",book[i]); printf("\n"); } return 0; } 50分sad...还要再想一下,代码太冗余整个思路是一下出来的,所以写完之后不太明白哪里出错
    转载请注明原文地址: https://ju.6miu.com/read-32304.html

    最新回复(0)