チェス盤問題と織布理論

3137 ワード

これは織布理論の比較的良い論証プログラミング作品と言える.
#include
#include//
int main()
{
    //for (int i = 1; i <= 8; i++)
        /*  {
                for (int j = 1; j <= 8; j++)
                    if ((i + j) % 2 == 0)
                    {
                        printf(" ");
                    }
                    else
                    {
                        printf("*");
                    }
                printf("
"); }*/ for (int c = 1; c <= 1000; c++) { int num; printf(" "); scanf_s("%d", &num); int num3[100], num4[100]; int num5 = 0, num6 = 0; for (int i = 1; i <= num * 8; i = i + 1) { for (int j = 0; j <= 7; j = j + 2) { if (i >= (1 + num*j) && i <= (num + num*j)) { num3[num5] = i; num5 += 1; //printf("%d
", num5); } } for (int m = 1; m <= 7; m = m + 2) { if (i >= (1 + num*m) && i <= (num + num*m)) { num4[num6] = i; num6 += 1; // printf("%d
", num6); } } } /* for (int i = 0; i <= num5; i++) { printf("%d", num3[i]); } for (int i = 0; i <= num5; i++) { printf("%d", num4[i]); }*/ int num1[8] = { 1,2,5,6,9,10,13,14 }; int num2[8] = { 3,4,7,8,11,12,15,16 }; for (int i = 1; i <= num * 8; i++) { for (int j = 1; j <= num * 8; j++) { for (int a = 0; a < num5; a++) { for (int b = 0; b < num6; b++) { if (i == num3[a] && j == num4[b]) { printf("*"); } else if (i == num4[b] && j == num3[a]) { printf("*"); } // /* else // { // printf(" "); // }*/ // else , 4 for , ?
, , for ... else if (i == num3[a] && j == num3[b]) { printf(" "); } else if (i == num4[a] && j == num4[b]) { printf(" "); } } } } printf("
"); } } system("pause"); return 0; }