P2404 自然数的拆分问题——题解2020.10.8

    科技2026-04-22  5

    P2404 自然数的拆分问题

    思路分析

    傻瓜做法,因为 n<=8 ,所以可以把7中情况都列出来输出答案;

    注意事项

    注意行和列的范围,防止多输和少输;

    代码实现

    #include <stdio.h> int main(){ int n, i, j; int a[21][8] = {{1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 2, 0}, {1, 1, 1, 1, 1, 3, 0, 0}, {1, 1, 1, 1, 2, 2, 0, 0}, {1, 1, 1, 1, 4, 0, 0, 0}, {1, 1, 1, 2, 3, 0, 0, 0}, {1, 1, 1, 5, 0, 0, 0, 0}, {1, 1, 2, 2, 2, 0, 0, 0}, {1, 1, 2, 4, 0, 0, 0, 0}, {1, 1, 3, 3, 0, 0, 0, 0}, {1, 1, 6, 0, 0, 0, 0, 0}, {1, 2, 2, 3, 0, 0, 0, 0}, {1, 2, 5, 0, 0, 0, 0, 0}, {1, 3, 4, 0, 0, 0, 0, 0}, {1, 7, 0, 0, 0, 0, 0, 0}, {2, 2, 2, 2, 0, 0, 0, 0}, {2, 2, 4, 0, 0, 0, 0, 0}, {2, 3, 3, 0, 0, 0, 0, 0}, {2, 6, 0, 0, 0, 0, 0, 0}, {3, 5, 0, 0, 0, 0, 0, 0}, {4, 4, 0, 0, 0, 0, 0, 0}}; scanf("%d", &n); switch(n){ case 2: for(i = 0; i <= 0; i++){ for(j = 6; j <= 7; j++){ if(a[i][j] != 0 && j == 6) printf("%d", a[i][j]); else if(a[i][j] != 0) printf("+%d", a[i][j]); } printf("\n"); } break; case 3: for(i = 0; i <= 1; i++){ for(j = 5; j <= 7; j++){ if(a[i][j] != 0 && j == 5) printf("%d", a[i][j]); else if(a[i][j] != 0) printf("+%d", a[i][j]); } printf("\n"); } break; case 4: for(i = 0; i <= 3; i++){ for(j = 4; j <= 7; j++){ if(a[i][j] != 0 && j == 4) printf("%d", a[i][j]); else if(a[i][j] != 0) printf("+%d", a[i][j]); } printf("\n"); } break; case 5: for(i = 0; i <= 5; i++){ for(j = 3; j <= 7; j++){ if(a[i][j] != 0 && j == 3) printf("%d", a[i][j]); else if(a[i][j] != 0) printf("+%d", a[i][j]); } printf("\n"); } break; case 6: for(i = 0; i <= 9; i++){ for(j = 2; j <= 7; j++){ if(a[i][j] != 0 && j == 2) printf("%d", a[i][j]); else if(a[i][j] != 0) printf("+%d", a[i][j]); } printf("\n"); } break; case 7: for(i = 0; i <= 13; i++){ for(j = 1; j <= 7; j++){ if(a[i][j] != 0 && j == 1) printf("%d", a[i][j]); else if(a[i][j] != 0) printf("+%d", a[i][j]); } printf("\n"); } break; case 8: for(i = 0; i <= 20; i++){ for(j = 0; j <= 7; j++){ if(a[i][j] != 0 && j == 0) printf("%d", a[i][j]); else if(a[i][j] != 0) printf("+%d", a[i][j]); } printf("\n"); } break; } return 0; }
    Processed: 0.010, SQL: 9