正文

生成奇数阶等和幻方代码(超短)2007-04-14 08:55:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzfy/24395.html

分享到:

很短,但应该不是最短,仅用循环来完成
#include <stdio.h>  //头文件

版本一(数字1在中间偏右):
int main()
{
    long nList[19][19],n=0,n1,n2,nh;
    while(n%2==0)scanf("%d",&n);//输入阶数
    for(n2=n*n,n1=0,nh=n/2;n1<n2;n1++)//计算生成
        nList[(n1*(n-1)+nh+n1/n)%n][(n1+nh+1+n1/n)%n]=n1+1;
    for(n2=0;n2<n;n2++)//结果输出
    {
        for(n1=0;n1<n;n1++)printf("%4d",nList[n2][n1]);
        printf("\n");
    }
    return 0;
}

版本二(数字1在第一行中间):
int main()
{
    long nList[31][31],n=0,n1,n2;
    while(!(n&1))scanf("%d",&n);//输入阶数
    for(n2=n*n,n1=0;n1<n2;n1++)//计算生成
        nList[(n1*(n-1)+(n1/n)*2)%n][(n1+(n>>1)-n1/n)%n]=n1+1;
    for(n2=0;n2<n;n2++)//结果输出
    {
        for(n1=0;n1<n;n1++)printf("%4d",nList[n2][n1]);
        printf("\n");
    }
    return 0;
}

阅读(4484) | 评论(10)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册