小弟有两道编程题想请教各位高手,请各位大侠指导一下。**************************************************************************1
 计算s=1*1/1!+2*2/2!+3*3/3!+……+1000*1000/1000!之值。(注:不得产生溢出。)2
幻方亦称纵横图,即在一个n阶方阵中排出1~n个自然数,使其各行、各列、对角线上诸元素的和值相等。如三阶幻方  :  
      6 1 8
      7 5 3 
      2 9 4  
五阶幻方:
     17  24  1   8   15
     23  5   7   14  16
     4   6   13  20  22
     10  12  19  21  3 
     11  18  25  2   9
设计一程序输出多个不同的五阶幻方(注:有许多种不同的五阶幻方)。**************************************************************************
对于上述第一题,我如何编才能达到要求的精度而不溢出?
对于第二题,如何将所有可能的五阶幻方都输出?      

解决方案 »

  1.   

    小弟有两道编程题想请教各位高手,请各位大侠指导一下。********************************************************************1
     计算s=1*1/1!+2*2/2!+3*3/3!+……+1000*1000/1000!之值。(注:不得产生溢出。)2
    幻方亦称纵横图,即在一个n阶方阵中排出1~n个自然数,使其各行、各列、对角线上诸元素的和值相等。如三阶幻方  :  
          6 1 8
          7 5 3 
          2 9 4  
    五阶幻方:
         17  24  1   8   15
         23  5   7   14  16
         4   6   13  20  22
         10  12  19  21  3 
         11  18  25  2   9
    设计一程序输出多个不同的五阶幻方(注:有许多种不同的五阶幻方)。********************************************************************对于上述第一题,我如何编才能达到要求的精度而不溢出?
    对于第二题,如何将所有可能的五阶幻方都输出?      
      

  2.   

    第一题主要是阶乘溢出的问题,可以用一个数组来存放操作的数,一个N个长度的整形数组就存N位数,在这基础上做。
    类似的我做过一个大数乘法计算器,你可以参考一下:http://www.vcgame.y365.com/Program/index.htm
      

  3.   

    Question 1: u'd use an array to restore every bit of the large result Question 2: consider the symmetry of matrix
      

  4.   

    1.用循环做,
    int i;
    double float s=0,s2=1;for(i=1;i<=1000;i++)
    {
    s2*=1/i;
    s+=i*i*s2;
    }
    2。还没有想好,主要是算法的问题。