• 编程实现n阶奇数幻方


    奇幻七绝
      先填上行正中央,
      依次斜填切莫忘。
      上格没有顶格填,
      顶格没有底格放。

    转载于:http://blog.csdn.net/fengchaokobe/article/details/7437767

    编程实现奇数阶幻方算法:

      1. #include<iostream>  
      2. #include<iomanip>  
      3. #include<cmath>  
      4. using namespace std;  
      5. int main()  
      6. {  
      7.     int n;  
      8.     do   
      9.     {  
      10.         cout << "Please input a odd num:" << endl;  
      11.         cin>>n;  
      12.     } while (!(n%2));  
      13.       
      14.     int i;  
      15.     int **Matr=new int*[n];//动态分配二维数组  
      16.     for(i=0; i<n; ++i)  
      17.         Matr[i]=new int[n];//动态分配二维数组  
      18.     //j=n/2代表首行中间数作为起点,即1所在位置  
      19.     int j=n/2, num=1;//初始值  
      20.     i=0;  
      21.     while(num!=n*n+1)  
      22.     {  
      23.         int ii = (i%n+n)%n;//注意i%n可能为负数  
      24.         int jj = (j%n+n)%n;  
      25.         //往右上角延升,若超出则用%转移到左下角  
      26.         Matr[ii][jj]=num;  
      27.         //斜行的长度和n是相等的,超出则转至下一斜行  
      28.         if(num%n==0)//以n个数一组斜对角填,填满了则又从最后一个数的正下方开始填  
      29.             i++;  
      30.         else  
      31.         {  
      32.             i--;  
      33.             j++;  
      34.         }  
      35.         num++;  
      36.     }  
      37.     for(i=0;i<n;i++)  
      38.     {  
      39.         for(j=0;j<n;++j)  
      40.             cout<<setw((int)log10((double)n*n)+4)<<Matr[i][j];//格式控制  
      41.         cout<<endl<<endl;//格式控制  
      42.     }  
      43.     for(i=0;i<n;++i)  
      44.         delete []Matr[i];  
      45.     return 1;  
      46. }  
  • 相关阅读:
    python常用字符串处理(转)
    Python读写文件基础.py
    Python异常和调试.md
    Python类的进阶.md
    Python模块和类.md
    python函数基础:调用内置函数&定义函数
    Spring.Net学习笔记(二)-数据访问器
    Spring.Net学习笔记(1)-容器的使用
    Spring.Net学习笔记(0)-错误汇总
    VS中设置xml智能提示
  • 原文地址:https://www.cnblogs.com/qianyaoyuan/p/2990058.html
Copyright © 2020-2023  润新知