标题:感觉这道大一编程题有点变态
取消只看楼主
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
结帖率:99.25%
已结贴  问题点数:30 回复次数:0 
感觉这道大一编程题有点变态

输出“魔方阵”所谓魔方阵是指这样的方阵,它的每一行,每一列和对角线之和均相等。例如,三阶魔方阵为

8 1 6
3 5 7
4 9 2

要求输出1~n的平方的自然数构成的魔方阵

我用了一种最笨但理论上也是最傻瓜式的暴力穷举法,把程序改进一下就能求任意阶的了~(理论上)

具体代码如下:

程序代码:
#include<stdio.h>
int main()
{
    int a[10]={1,1,1,1,1,1,1,1,1,0};
    int i,j,count;
    for (count=0;a[9]<1;count=0)
    {
        while (a[count]>=9)
        {
            a[count]=0;
            count++;
        }
        a[count]++;
        for (i=j=0;i<9;i=i+3,j++)
        {
            if (a[i]+a[i+1]+a[i+2]!=15||a[j]+a[j+3]+a[j+6]!=15)
                i=7;
        }
        if (a[0]+a[4]+a[8]!=15||a[2]+a[4]+a[6]!=15)
            i=10;
        if (i==9)
        {    
            for (i=0;i<9;i++)
                printf("%d ",a[i]);
            printf("\n");
        }
    }
}


我只是抛砖引玉罢了~运行三阶勉强还可以,运行四阶编译器就要崩溃了~

求各路大神能否帮帮忙解决这个难题
搜索更多相关主题的帖子: 自然数 对角线 color 暴力 
2016-11-05 19:37



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




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

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