找回密码
 立即注册
搜索
查看: 767|回复: 3

生成奇数阶等和幻方代码(超短)

[复制链接]

23

主题

814

回帖

1091

积分

荣誉版主

积分
1091
发表于 2007-5-4 19:46:29 | 显示全部楼层 |阅读模式
很短,但应该不是最短,仅用循环来完成
#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;
}

39

主题

408

回帖

589

积分

高级会员

积分
589
发表于 2007-5-9 11:08:20 | 显示全部楼层
不懂。。。。。
回复

使用道具 举报

92

主题

6378

回帖

8487

积分

网站编辑

豆腐

积分
8487
发表于 2007-5-9 21:03:16 | 显示全部楼层
晕,全都变表情了...
波浪式的发贴,螺旋式的灌水...
回复

使用道具 举报

34

主题

465

回帖

658

积分

高级会员

积分
658
发表于 2007-5-10 15:33:29 | 显示全部楼层
晕,全都变表情了.......
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-15 15:12 , Processed in 0.076356 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表