zoukankan      html  css  js  c++  java
  • 蛇形填数——上三角

    蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

    Input
    本题有多组数据,每组数据由一个正整数N组成。(1<=N<=22)

    Output
    对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。

    矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。

    Sample Input
    5

    Sample Output
    1 3 6 10 15
    2 5 9 14
    4 8 13
    7 12
    11

    #include <stdio.h>
    #include <string.h>
    int s[23][23];
    int main()
    {
        int x, n, i, j, t;
        scanf("%d", &x);    
        while(x--){
    
                
                scanf("%d", &n);
                memset(s, 0, sizeof(s));//对于填数题一定记得清0,而且二维数组清0是在sizeof里写上数组名
                i = j = t = 1;
                while(1){
    
                        while(j <= n && !s[i][j])
                        {
                            s[i][j++] = t++;
                        }
                        if(s[i][j - 1] == n * (n+1) / 2)
                            break;
                        j -= 2;
                        i++;
                        while(i <= n && j >= 1 && !s[i][j])
                        {
                            s[i++][j--] = t++;
                        }
                        if(s[i - 1][j + 1] == n * (n+1) / 2)
                            break;
                        i -= 2;
                        j++;
                        while(j >= 1 && !s[i][j])
                        {
                            s[i--][j] = t++;
                        }
                        if(s[i + 1][j] == n * (n+1) / 2)
                            break;
                        i++;
                        j++;
                }
                for(i = 1; i <= n; i++){
    
                    for(j = 1; j < n - i + 1; j++){
    
                            printf("%d ", s[i][j]);
    
                    }
                    printf("%d
    ", s[i][j]);
    
                }
        }
        return 0;
    }
    
                        
    
                        
    View Code
  • 相关阅读:
    什么是动态链接库
    <<TCP/IP高效编程>>读书笔记
    C++ 函数
    我的vim配置
    FastReport4.6程序员手册_翻译
    DUnit研究初步
    ADO BUG之'无法为更新定位行....' 解决之道
    极限编程的集成测试工具Dunit
    总结
    项目管理检查清单项目启动
  • 原文地址:https://www.cnblogs.com/the-one/p/3263954.html
Copyright © 2011-2022 走看看