zoukankan      html  css  js  c++  java
  • 概率法求解三阶幻方[C语言]

    #include <stdio.h>
    #include <string.h>
    
    int in[9]={1,2,3,4,5,6,7,8,9};
    int s[9];
    int re[3][3];
    
    int sum(int su[])
    {
        int i,re=0;
        for(i=0;su[i];i++)
            re+=su[i];
        return re;
    }
    
    int main()
    {
        int i,j,k,count=0;
        memset(s,0,sizeof(s));
        int SUM = sum(in);
        if(SUM/9 != (float)SUM/9.0)
        {
            printf("wrong
    ");
            return 0;
        }
        for(i=0;i<9;i++)
            for(j=i+1;j<9;j++)
                for(k=j+1;k<9;k++)
                {
                    if(in[i]+in[j]+in[k] == (int)SUM/3)
                    {
                        s[i]++;
                        s[j]++;
                        s[k]++;
                        count++;
                    }
                }
        if(count!=8)
        {
            printf("wrong
    ");
            return 0;
        }
        int flag=0;
        for(i=8;i>=0;i--) 
        {
            if(s[i]==4)    re[1][1] = in[i];
            if(s[i]==3 && flag==0) { re[0][0] = in[i]; flag++; }
            else if(s[i]==3 && flag==1) { re[0][2] = in[i]; flag++; }
            else if(s[i]==3 && flag==2) { re[2][0] = in[i]; flag++; }
            else if(s[i]==3 && flag==3) { re[2][2] = in[i]; flag++; }
        }
        if(re[0][0]+re[1][1]+re[2][2]!=(int)SUM/3)
        {
            int tmp;
            tmp = re[0][0];
            re[0][0] = re[2][2];
            re[2][2] = tmp;
        }
        re[0][1] = (int)SUM/3 - re[0][0] - re[0][2];
        re[1][0] = (int)SUM/3 - re[0][0] - re[2][0];
        re[1][2] = (int)SUM/3 - re[2][2] - re[0][2];
        re[2][1] = (int)SUM/3 - re[2][2] - re[2][0];
    
        for(i=0;i<3;i++)
        {
            for(j=0;j<3;j++)
            {
                printf("%d ",re[i][j]);
            }
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    LINUX按键驱动程序
    s3c2440地址分配
    Linux内核代码
    C语言初始化
    tftp协议
    ARM工作模式
    Bootstrap3隐藏滑动侧边栏菜单代码特效
    javascript 中slice,substr,substring方法的对比
    vue 的简述
    鼠标移动出自己想要的效果
  • 原文地址:https://www.cnblogs.com/suthui/p/3840659.html
Copyright © 2011-2022 走看看