标题:求"魔方阵"程序及算法
只看楼主
liuting8181
Rank: 2
等 级:论坛游民
帖 子:54
专家分:19
注 册:2011-4-21
得分:0 
// 奇数魔方阵算法
#include<stdio.h>


#define N 5

int main(void)
{
    int a[N+1][N+1]={0};
    int i,j,key=1;

    i=0;
    j=(N+1)/2;
    for(key=1;key<=25;key++)    // 解法 第一个数字放在第一行第一列的正中央,然后向右(上)填,如果右上已有数字,则向下填...
    {    if((key%N)==1)   // 可判断 右上位置是否已经填上数字
         
            i++;
            
        else
        {   
            i--;
            j++;
        }
        if(i==0)    // 如果是边界 则到第N行
        i=N;
    if(j>N)       //如果是边界则到第1列
        j=1;
    a[i][j]=key;
    }
   
   
    for(i=1;i<=N;i++)
    {

        for(j=1;j<=N;j++)
            printf("%-4d",a[i][j]);
        printf("\n");
    }
    return 0;

}
2011-06-13 15:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-215815-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.303587 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved