2012ÄêÀ¶Çű­Èí¼þÉè¼Æ´óÈüºÓÄÏÊ¡³õÈüÊÔÌâºÍ´ð°¸ ÏÂÔØ±¾ÎÄ

15 int n3 = x2 * y1; 16 int n4 = x2 * y2; 17

18 r[3] = n1 % base;

19 r[2] = n1 / base + n2 % base + n3 % base;

20 r[1] = n3 / base + n2 / base + n4 % base; // Ìî¿Õ 21 r[0] = n4 / base; 22

23 r[1] += r[2] / base; // Ìî¿Õ 24 r[2] = r[2] % base; 25 r[0] += r[1] / base; 26 r[1] = r[1] % base; 27 }

28 int main(int argc, char* argv[]) 29 {

30 int x[] = {0,0,0,0};

31 bigmul(87654321, 12345678, x);

32 printf(\, x[0],x[1],x[2],x[3]); 33 system(\); 34 return 0; 35 }

Æß¡¢·ÅÆå×Ó

½ñÓÐ 6 x 6 µÄÆåÅ̸ñ¡£ÆäÖÐijЩ¸ñ×ÓÒѾ­Ô¤ÏȷźÃÁËÆå×Ó¡£ÏÖÔÚÒªÔÙ·ÅÉÏȥһЩ£¬Ê¹µÃ£ºÃ¿ÐÐÿÁж¼ÕýºÃÓÐ3¿ÅÆå×Ó¡£ÎÒÃÇÏ£ÍûÍÆËã³öËùÓпÉÄܵķŷ¨¡£ÏÂÃæµÄ´úÂë¾ÍʵÏÖÁËÕâ¸ö¹¦ÄÜ¡£

³õʼÊý×éÖУ¬¡°1¡±±íʾ·ÅÓÐÆå×Ó£¬¡°0¡±±íʾ¿Õ°×¡£

1 #include 2 #include 3

4 using namespace std; 5

6 int N = 0;

7 bool CheckStoneNum(int x[][6]) 8 {

9 for(int k=0; k<6; k++) 10 {

11 int NumRow = 0; 12 int NumCol = 0;

13 for(int i=0; i<6; i++) 14 {

15 if(x[k][i]) NumRow++; 16 if(x[i][k]) NumCol++; 17 }

18 if(NumRow != 3 || NumCol != 3)// Ìî¿Õ 19 return false; 20 }

21 return true; 22 }

23 int GetRowStoneNum(int x[][6], int r) 24 {

25 int sum = 0;

26 for(int i=0; i<6; i++) if(x[r][i]) sum++; 27 return sum; 28 }

29 int GetColStoneNum(int x[][6], int c) 30 {

31 int sum = 0;

32 for(int i=0; i<6; i++) if(x[i][c]) sum++; 33 return sum; 34 }

35 void show(int x[][6]) 36 {

37 for(int i=0; i<6; i++) 38 {

39 for(int j=0; j<6; j++) printf(\, x[i][j]); 40 printf(\); 41 }

42 printf(\); 43 }

44 void f(int x[][6], int r, int c);

45 void GoNext(int x[][6], int r, int c) 46 {

47 if(c<6)

48 f(x, r, c+1); // Ìî¿Õ 49 else

50 f(x, r+1, 0); 51 }

52 void f(int x[][6], int r, int c) 53 {

54 if(r==6) 55 {

56 if(CheckStoneNum(x)) 57 {

58 N++; 59 show(x); 60 }

61 return;

62 }

63 if(x[r][c]) // Ìî¿Õ------ÒѾ­·ÅÓÐÁËÆå×Ó 64 {

65 GoNext(x,r,c); 66 return; 67 }

68 int rr = GetRowStoneNum(x,r); 69 int cc = GetColStoneNum(x,c); 70 if(cc>=3) // ±¾ÁÐÒÑÂú 71 GoNext(x,r,c);

72 else if(rr>=3) // ±¾ÐÐÒÑÂú 73 f(x, r+1, 0); 74 else 75 {

76 x[r][c] = 1; 77 GoNext(x,r,c); 78 x[r][c] = 0;

79 if(!(3-rr >= 6-c || 3-cc >= 6-r)) // ±¾Ðлò±¾ÁÐÑÏÖØÈ±×Ó£¬Ôò±¾¸ñ²»ÄÜ¿Õ×Å£¡

80 GoNext(x,r,c); 81 } 82 }

83 int main(int argc, char* argv[]) 84 {

85 int x[6][6] = { 86 {1,0,0,0,0,0}, 87 {0,0,1,0,1,0}, 88 {0,0,1,1,0,1}, 89 {0,1,0,0,1,0}, 90 {0,0,0,1,0,0}, 91 {1,0,1,0,0,1} 92 };

93 f(x, 0, 0);

94 printf(\, N); 95 system(\); 96 return 0; 97 }

°Ë¡¢ÃÜÂë·¢ÉúÆ÷

ÔÚ¶ÔÒøÐÐÕË»§µÈÖØÒªÈ¨ÏÞÉèÖÃÃÜÂëµÄʱºò£¬ÎÒÃdz£³£Óöµ½ÕâÑùµÄ·³ÄÕ£ºÈç¹ûΪÁ˺üÇÓÃÉúÈÕ°É£¬ÈÝÒ×±»ÆÆ½â£¬²»°²È«£»Èç¹ûÉèÖò»ºÃ¼ÇµÄÃÜÂ룬ÓÖµ£ÐÄ×Ô¼ºÒ²»áÍü¼Ç£»Èç¹ûдÔÚÖ½ÉÏ£¬µ£ÐÄÖ½Õű»±ðÈË·¢ÏÖ»òŪ¶ªÁË...