two

来源:互联网 发布:linux关闭mysql启动 编辑:程序博客网 时间:2024/04/28 14:53
题目:<br/>跟蛇形填数一样,只是填数要求按照三角形填。注意每组数据之间用空行隔开<br>

个人理解:<br>主要还是应当知道每个方向数的增长是不变的即可<br/>

#include<stdio.h>int a[1000][1000];int  main(){    int n,count,x,y,m,i,j,l;    int b[1000];scanf("%d",&m);if(m<=0)return 0;    count=a[x=0][y=0]=1;    for(i=0;i<m;i++)       scanf("%d",&b[i]);    printf("\n");for(i=0;i<m;i++){ n=b[i];     while(count<((n+1)*n)/2){        while(y+1<n && !a[x][y+1]) a[x][++y]=++count;        while(y-1>=0 &&!a[x+1][y-1]&&x+1<n) a[++x][--y]=++count;        while(x-1<n &&!a[x-1][y])  a[--x][y]=++count;    } for(x=0;x<n;x++){      //输出        for(y=0;y<n-x;y++){            printf("%-3d ",a[x][y]);        }        printf("\n");    }    printf("\n");     for(l=0;l<1000;l++) {//初始化为0     for(j=0;j<1000;j++){   a[l][j]=0; }} count=a[x=0][y=0]=1;} return 0; }



原创粉丝点击