当前位置: 代码迷 >> C语言 >> 自己编的魔方阵程序
  详细解决方案

自己编的魔方阵程序

热度:423   发布时间:2008-06-13 10:59:37.0
代码限制 有一点错 至少得3*3吧  提示也有点问题 呵呵 不过 可以运行
----------------解决方案--------------------------------------------------------
[bo][un]huizi0711[/un] 在 2008-6-13 09:07 的发言:[/bo]

我觉得三行是不可能的

你相不相信都没有关系,因为三行算幻方的代码一年前我已经写出来了


[color=white]
----------------解决方案--------------------------------------------------------
牛人到处有
我相信
不过我还是想看看撒
----------------解决方案--------------------------------------------------------
/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
#include <iostream>

template<int x>
void Make(int nList[][x], int n)//计算生成函数
{
   
for(int 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;
};

int main()
{
   
int nList[30][30],n=0;
    while(scanf("%d",&n)==1)//输入阶数
   
{
        
if(!(n&1)) continue;
        Make(nList, n);//调用生成
        
for(int n2=0;n2<n;n2++)//结果输出
        
{
            
for(int n1=0;n1<n;n1++)
                printf("%4d",nList[n2][n1]);
            printf("\n");
        }
    }
   
return 0;
}


不好意思,搞错了,生成的函数只要两行


[color=white]

[[it] 本帖最后由 爱喝牛奶的猫咪 于 2008-6-16 22:51 编辑 [/it]]
----------------解决方案--------------------------------------------------------
恩,赞一个。

话说,与其这样写,不如代码写多一点,一来好理解,二来速度快一些。
----------------解决方案--------------------------------------------------------
同意楼上观点
太短可读性就不好了
----------------解决方案--------------------------------------------------------
其实可读性还不错的,无非就是找个公式,然后学乌龟爬……
关键是,计算公式肯定比直接模拟要慢一点……
----------------解决方案--------------------------------------------------------
其实这已经不算什么了,要是反过来计算就恐怖了


[flash=400,300]http://yzfy.byethost17.com/flash.php[/flash][color=white]
----------------解决方案--------------------------------------------------------
  相关解决方案