• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 21,  comments - 9,  trackbacks - 0
            n階幻方問(wèn)題:設(shè)n為奇數(shù)(n[3, 19])。試在n´n的表格內(nèi)不重復(fù)地填上1, 2, …, n2數(shù)字,使得橫向、縱向、兩對(duì)角線(xiàn)上數(shù)之和都相等。


              1#include<stdio.h>
              2#include<malloc.h>
              3//此程序適用于幻方問(wèn)題
              4//奇數(shù)階幻方問(wèn)題
              5
              6
              7//初始化函數(shù)
              8void init(int n,int **rect)
              9{
             10    int i = 0;
             11    int j = 0;
             12    for(i = 0;i<n;i++)
             13    {
             14        for(j = 0;j<n;j++)
             15        {
             16            rect[i][j] = 0;
             17        }

             18    }

             19}

             20
             21//計(jì)算函數(shù)
             22void pro(int n,int **rect)
             23{
             24    /*奇數(shù)階幻方問(wèn)題的規(guī)則是
             25    1   把1放到第一行的正中間
             26    2   其他數(shù)都放到上一個(gè)數(shù)的右上角
             27    3   如果是在第一行,那么把它的行數(shù)變?yōu)閚,列數(shù)加1
             28    4    如果是在最后一列,則行數(shù)減1 列數(shù)變?yōu)?
             29    5   當(dāng)然了,上面3 4 兩種情況只有最右上角的一個(gè)格會(huì)同時(shí)發(fā)生,而當(dāng)它發(fā)生的時(shí)候,就把該元素直接放到右上角那個(gè)元素的下面即可
             30    6   如果后續(xù)的數(shù)所處的位置已有數(shù),則行數(shù)加1 列數(shù)不變
             31    
             32    */

             33
             34
             35    int i = 0;
             36    int j = 0;
             37    int currentNum = 2;
             38    int final = n*n;
             39    j = n/2;
             40    rect[i][j] = 1;//把1放到中間的位置
             41    for(;currentNum<=final;currentNum++)
             42    {
             43        j++;
             44        i--;
             45        //首先處理右上角的元素
             46        if(i<0 && j== n)
             47        {
             48            i+= 2;
             49            j--;
             50        }

             51        else
             52        {
             53            if(i<0)
             54            {
             55                i = n-1;
             56            }

             57            if(j == n)
             58            {
             59                j = 0 ;
             60            }

             61        }

             62
             63        if(rect[i][j] != 0)
             64        {
             65            
             66            i+=2;
             67            j--;
             68        }

             69        rect[i][j] = currentNum;
             70    }

             71
             72}

             73
             74
             75//打印輸出函數(shù)
             76void print(int n ,int **rect)
             77{
             78    int i = 0;
             79    int j = 0;
             80    for(i = 0;i<n;i++)
             81    {
             82        for(j= 0;j<n;j++)
             83        {
             84            printf("%d  ",rect[i][j]);
             85        }

             86        printf("\n");
             87    }

             88
             89}

             90void main()
             91{
             92    int n = 0;
             93    int i = 0;
             94    int j = 0;
             95    int** rect;
             96    printf("請(qǐng)輸入一個(gè)奇數(shù)\n");
             97    scanf("%d",&n);
             98    //OK 成功讀入了數(shù)據(jù)
             99
            100    //下面創(chuàng)建一個(gè)矩形
            101    rect = (int **)malloc(sizeof(int *)*n);
            102    for(i = 0;i<n;i++)
            103    {
            104        rect[i] = (int *)malloc(sizeof(int)*n);
            105    }

            106    //截止到此,已經(jīng)成功動(dòng)態(tài)創(chuàng)建了這個(gè)數(shù)組
            107    
            108
            109    //初始化函數(shù)
            110    init(n,rect);
            111    //運(yùn)算的函數(shù)
            112    pro(n,rect);
            113    //下面是打印的函數(shù)
            114    print(n,rect);
            115
            116
            117
            118    
            119
            120}



            以上就是整理的幻方問(wèn)題的程序,希望各位指正!
            posted on 2011-02-16 19:43 崔佳星 閱讀(472) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 數(shù)據(jù)結(jié)構(gòu)和算法
            <2011年2月>
            303112345
            6789101112
            13141516171819
            20212223242526
            272812345
            6789101112

            常用鏈接

            留言簿(1)

            隨筆分類(lèi)

            隨筆檔案

            文章分類(lèi)

            文章檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久久久久狠狠丁香| 成人亚洲欧美久久久久| 久久精品不卡| 久久人人爽人爽人人爽av| 日日狠狠久久偷偷色综合96蜜桃 | 久久国产高清字幕中文| 2020久久精品国产免费| 日本精品久久久久影院日本| 国产亚洲精久久久久久无码77777| 久久精品99久久香蕉国产色戒 | 国产精品久久婷婷六月丁香| 狠狠色婷婷久久综合频道日韩| 91精品国产综合久久精品| 久久久久99精品成人片牛牛影视 | 亚洲伊人久久大香线蕉苏妲己| 伊人久久无码精品中文字幕| 久久久久国产精品| 性色欲网站人妻丰满中文久久不卡| 99久久精品国产一区二区三区 | 国产精品成人久久久久三级午夜电影| 亚洲精品97久久中文字幕无码| 99国产精品久久| 久久精品aⅴ无码中文字字幕不卡| 亚洲精品tv久久久久| 久久午夜福利电影| 久久99国产精品久久| 国内精品伊人久久久久av一坑| 国内精品久久国产| 久久99九九国产免费看小说| 精品久久久久久久久久久久久久久| 热re99久久精品国99热| 久久综合香蕉国产蜜臀AV| 久久久久久国产精品无码下载| 久久精品国产2020| 7777精品伊人久久久大香线蕉| 品成人欧美大片久久国产欧美...| 国产91色综合久久免费分享| 国产精品久久久久jk制服| 国产成年无码久久久久毛片| 久久人人爽人人爽人人AV| 久久久噜噜噜久久熟女AA片|