亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2327 | 回復(fù): 5
打印 上一主題 下一主題

小學(xué)六年級(jí)的奧賽題,用編程實(shí)現(xiàn) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2006-11-05 21:39 |只看該作者 |倒序?yàn)g覽
用1-25填入5X5的矩陣中,要求橫加,豎加的和都是一樣的.

如:
  1 2 13 24 25
21 X  X  X   X   
  6 X  X  X   X
19 X  X  X   X
18 X  X  X   X

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2006-11-06 09:35 |只看該作者
我的思路:

先將這25個(gè)數(shù)放在矩陣?yán)锸姑恳恍械男卸紴?5.
再在豎排里調(diào)整.

盼更精簡(jiǎn)思路\算法.

  1. #include <stdio.h>

  2. void changeit(int *a ,int *b)
  3. {
  4.         int values;
  5.        
  6.         values=*b;
  7.         *b=*a;
  8.         *a=values;
  9. }

  10. main()
  11. {
  12.         int a[5][5],flag[26];

  13.         int i[6];
  14.         int j=0,k,l,m,n;

  15.         for(i[1]=1;i[1]<=25;i[1]++)
  16.         {
  17.                
  18.                 if (flag[i[1]] == 1) continue;
  19.                 flag[i[1]] = 1;
  20.                
  21.                 for(i[2]=i[1]+1;i[2]<=25;i[2]++)
  22.                 {
  23.                         if ( flag[i[2]] == 1 ) continue;
  24.                         flag[i[2]] =1;
  25.                                          
  26.                         for(i[3]=i[2]+1;i[3]<=25;i[3]++)
  27.                         {
  28.                                 if ( flag[i[3]] == 1 ) continue;
  29.                                 flag[i[3]] =1;
  30.                                
  31.                                 for(i[4]=i[3]+1;i[4]<=25;i[4]++)
  32.                                 {
  33.                                         if ( flag[i[4]] == 1 ) continue;
  34.                                         flag[i[4]] =1;
  35.                                          
  36.                                         for(i[5]=i[4]+1;i[5]<=25;i[5]++)
  37.                                         {
  38.                                                 if ( flag[i[5]] == 1 ) continue;
  39.                                                 flag[i[5]] =1;
  40.                                        
  41.                                                 if ( i[1]+i[2]+i[3]+i[4]+i[5] == 65 )
  42.                                                 {
  43.                                                         goto next;
  44.                                                 }
  45.                                                 flag[i[5]] =0;
  46.                                         }
  47.                                         flag[i[4]] =0;
  48.                                 }
  49.                                 flag[i[3]] =0;
  50.                         }
  51.                         flag[i[2]] = 0;
  52.                 }
  53.                 flag[i[1]] =0;
  54. next:
  55.         flag[i[1]] =0;
  56.        
  57.         for( k=0;k<5;k++)
  58.                 a[j][k] = i[k+1];
  59.         j++;
  60.         }

  61.         for(j=0;j<5;j++)
  62.         {
  63.                 for(k=0;k<5;k++)
  64.                 printf("%02d ",a[j][k]);
  65.                 printf("\n");
  66.         }
  67.         printf("\n\n");
  68.        
  69.        
  70.         for(j=0;j<5;j++){
  71.                 for(l=j;l<5;l++)
  72.                         for(m=j;m<5;m++)
  73.                                 for(n=j;n<5;n++)
  74.                                         for(k=j;k<5;k++)
  75.                                         if ( a[1][l]+a[2][m]+a[3][n]+a[4][j]+a[0][j] == 65 )
  76.                                         {
  77.                                                 /*change it*/
  78.                                                 changeit(&a[1][l],&a[1][j]);
  79.                                                 changeit(&a[2][m],&a[2][j]);
  80.                                                 changeit(&a[3][n],&a[3][j]);
  81.                                                 changeit(&a[4][k],&a[4][j]);                                               
  82.                                         }
  83.         }
  84.        
  85.         for(j=0;j<5;j++)
  86.         {
  87.                 for(k=0;k<5;k++)
  88.                 printf("%02d ",a[j][k]);
  89.                 printf("\n");
  90.         }
  91. }
復(fù)制代碼

[ 本帖最后由 zhhui2000 于 2006-11-6 09:38 編輯 ]

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2006-11-06 09:38 |只看該作者
$ a.out
01 02 13 24 25
03 04 14 21 23
05 06 12 20 22
07 08 15 16 19
09 10 11 17 18

01 02 13 24 25
14 04 21 03 23
22 06 05 20 12
19 08 15 16 07
09 10 11 17 18

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2006-11-06 12:34 |只看該作者
用幻方可以吧,要簡(jiǎn)單吧




  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>

  4. int main(int argc, char *argv[])
  5. {
  6.     int i;
  7.     int n = 0;
  8.     int width;
  9.     int row, col;
  10.     int *array;
  11.     char buf[64];

  12.     if (argc != 2) {
  13.         printf("usage:\n");
  14.         printf("\t%s <an odd number>\n", argv[0]);
  15.         return 1;
  16.     }

  17.     n = atoi(argv[1]);
  18.     if ((n & 1) == 0) {
  19.         printf("error: odd number expected\n");
  20.         return 1;
  21.     }

  22.     array = (int *)malloc(n * n * sizeof(int));
  23.     if (array == NULL) {
  24.         perror("malloc()");
  25.         return 1;
  26.     }

  27.     for (i = 0; i < n * n; i++) {
  28.         array[i] = 0;
  29.     }

  30.     for (i = 1, row = 0, col = n >> 1; i <= n * n; i++) {
  31.         array[row * n + col] = i;
  32.         if (array[(row + n - 1) % n * n + (col + 1) % n]) {
  33.             row = (row + 1) % n;
  34.         } else {
  35.             row = (row + n - 1) % n;
  36.             col = (col + 1) % n;
  37.         }
  38.     }

  39.     sprintf(buf, "%d", n * n);
  40.     width = 1 + strlen(buf);

  41.     for (row = 0; row < n; row++) {
  42.         for (col = 0; col < n; col++) {
  43.             printf("%*d", width, array[row * n + col]);
  44.         }
  45.         printf("\n");
  46.     }

  47.     return 0;
  48. }
復(fù)制代碼

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2006-11-06 13:17 |只看該作者
和幻方差不多,幻方要求斜線的和也相等,

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2006-11-06 14:48 |只看該作者
真是慚愧,我竟然不知道幻方.


Google了一下,發(fā)覺對(duì)小學(xué)學(xué)費(fèi)不住.
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP