当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 我想在cbuilder中显示office2000的word及excel文件(在同一页面显示),要求: 1. 文件只能看,不能编辑.文件要求能显示并能浏览全部内容,不是双击后能编辑的那种浏览.(我用olecontainter只能显示第一页,后面的都不能显示) 2.不能显示word及excel的菜单条及工具栏等东东(用twebbrower会显示这些,不知怎样才能去掉?) 谁能帮我?这里先谢过了......
    摘要: 听说好像有两种方法,一种用链接,一种用二进制流,请指教! ......


一个很简单的算法,可是

a,b,c  
  d,e,f  
  g,h,i  
   
   
  a.b.c.d.e.f.g.h.i在是1—9之间的数不能重复  
  让连着的三个数加一起和等于15  
  这样做不对吗?  
  我很笨的只想到这个算法了  
  Private   Sub   Form_Load()  
  a,b,c  
  d,e,f  
  g,h,i  
  For   i   =   1   To   9  
  For   h   =   1   To   9  
  For   g   =   1   To   9  
  For   f   =   1   To   9  
  For   e   =   1   To   9  
  For   d   =   1   To   9  
  For   c   =   1   To   9  
  For   b   =   1   To   9  
  For   a   =   1   To   9  
  If   a   +   b   +   c   =   15   And   a   +   e   +   i   =   15   And   a   +   d   +   g   =   15   _  
        And   b   +   e   +   h   =   15   And   _  
        c   +   f   +   i   =   15   And   c   +   e   +   g   =   15   And   c   +   b   +   a   =   15   _  
          And   d   +   e   +   f   =   15   And   g   +   h   +   i   =   15   Then  
  Print   a,   b,   c,   d,   e,   f,   g,   h,   i  
  End   If  
  Next   a  
  Next   b  
  Next   c  
  Next   d  
  Next   e  
  Next   f  
  Next   g  
  Next   h  
  Next   i  
  End   Sub  
  用VB调试了可是总是死机,有没有好的算法呀`?!?  
   
 

NO.1   作者: dragon525

魔阵是用自然数1,2,3,...,n2   填n阶方阵的各个元素位置,使方阵的每行的元素之和、每列的元素之和及对角线元素之和均相等(亦称九宫图)   .     奇数阶魔阵的一个算法是将自然数数列从方阵中间一行最后一个位置排起,每次总是向右下角排(即Aij  
  的下一个是Ai+1,j+1).但若遇下述四种情况,则应修正排数法.  
     
          1.   列排完(j=n+1),则转排第一列.  
          2.   行排完(i=n+1),则转排第一行.  
          3.   对Ann的下一个是An,n-1.  
          4.   若Aij已排进一个自然数,则排进Ai-1,j-2   .例如   五阶方阵  
   
  11         10       4         23       17  
  18         12       6         5         24  
  25         19       13       7           1  
  2           21       20       14         8  
  9           3         22       16         15  
      上面给出了任意n阶奇数阶魔阵的求解规律,我想照这个规律写出算法,应该不是难事吧。:)  
     
      有时候写程序往往容易造成思维定势,应学会利用数学的方法,或利用数学中已经验证过的公式或规律,这样写的程序效率要高很多。  
      比如   要你写一个1+2+3+……n的算法,或许你会很不以为然的说:“这还不简单用一个循环  
  for   (i=1;i<=n;i++)  
  {   sum=sum+i;  
    }  
  但事实上这个算法的时间复杂度为n  
   
  我要是这样写情况会是怎样呢?  
    sum=1/2*(n+1)*n      
  时间复杂度为1   ,显然这样的程序的效率要比上面高很多。  
   
     
   
 

NO.2   作者: boywang

偶数阶很简单的。  
  如4*4的。  
  1       2       3       4  
  5       6       7       8  
  9     10     11     12  
  13   14     15     16  
  对角的数字换一下就行了。如:1和16换。  
  最后是:  
  16     2       3     13  
  5     11     10       8  
  9       7       6     12  
  4     14     15       1  
   
   
  偶数就复杂一点了。要画图了。  
  如5*5的。  
  1:  
                                                        |         |  
                                            |         ||         ||         |  
                                |   1     ||   2     ||   3     ||   4     ||   5     |  
                      |       ||   6     ||   7     ||   8     ||   9     ||   10   ||       |  
            |       ||       ||   11   ||   12   ||   13   ||   14   ||   15   ||       ||       |  
                      |       ||   16   ||   17   ||   18   ||   19   ||   20   ||       |  
                                |   21   ||   22   ||   23   ||   24   ||   25   |  
                                            |         ||         ||         ||  
                                                        |         |      
  2:  
                                                        |   5     |  
                                            |   4     ||         ||   10   |  
                                |   3     ||         ||   9     ||         ||   15   |  
                      |   2   ||         ||   8     ||         ||   14   ||         ||   20   |  
            |   1   ||       ||   7     ||         ||   13   ||         ||   19   ||         ||   25     |  
                      |   6   ||         ||   12   ||         ||   18   ||         ||   24   |  
                                |   11   ||         ||   17   ||         ||   23   |  
                                            |   16   ||         ||   22   ||  
                                                        |   21   |      
  3:  
  把数字移到对应的5*5方阵中间  
  1移到13和19中间,25移到7和13中间,21移到9和13之间。  
  4:搞定了。  
  5:2n-1的方阵可用上述方法。  
  ps;上述方法不是唯一的,4*4的方阵就有4种。不过我都不记得了。

NO.3   作者: danielinbiti

魔方问题,  
  Private   Sub   Command1_Click()  
    Dim   input_i   As   Integer  
    Dim   i   As   Integer  
    Dim   n   As   Integer  
    Dim   r   As   Integer  
    Dim   c   As   Integer  
    Dim   m()   As   Integer  
    Dim   num   As   Integer  
    Dim   row   As   Integer  
    Dim   col   As   Integer  
    input_i   =   InputBox("输入i")  
    If   input_i   <   1   Then  
            MsgBox   "输入大于等于1的数"  
    End   If  
    For   n   =   1   To   input_i   Step   2  
      num   =   n   *   n  
      ReDim   m(n   -   1,   n   -   1)  
      row   =   0  
      col   =   (n   -   1)   /   2  
      i   =   1  
      Do   While   (i   <=   num)  
          If   (row   =   -1)   Then   row   =   n   -   1  
          If   (col   =   n)   Then   col   =   0  
          m(row,   col)   =   i  
          If   (i   Mod   n)   =   0   Then  
              row   =   row   +   1  
            Else  
              row   =   row   -   1  
              col   =   col   +   1  
          End   If  
            i   =   i   +   1  
    Loop  
    Print  
    Print   "下面输入的是n=";   n   &   "阶"  
    For   r   =   0   To   n   -   1  
        For   c   =   0   To   n   -   1  
          Print   Tab(c   *   6);   m(r,   c);  
        Next   c  
    Next   r  
    Next   n  
  End   Sub  
  Private   Sub   Form_Load()  
    Timer1.Interval   =   5000  
  End   Sub  
  Private   Sub   Timer1_Timer()  
    DoEvents  
  End   Sub  
  这个是我写的<=i的数的组合,


 ·一个关于格式转换的问题    »显示摘要«
    摘要: 请问有没有什么方法或软件可以批量处理word文档, 把其格式转换成为网页格式web ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE