`
ihuashao
  • 浏览: 4721082 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

一道趣味算术题

阅读更多

题目地址:http://club.excelhome.net/thread-175411-1-1.html

先看几个数:312132,231213,41312432,23421314

可以看到以上字串有以下特点: 2个1 之间有1个数,2个2 之间有2个数,2个3之间有3个数...
试找出由(1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8) 16个数组成的字符串满足上述条件的所有组合,即2个1 之间有1个数,2个2 之间有2个数,2个3之间有3个数...2个8之间有8个数.

1,1,2,2,3,3,...N,N共2N个数排成一行,2个1 之间有1个数,2个2 之间有2个数,...2个N之间有N个数...

设 1 放在A(1) ,A(1) + 2
2 放在A(2) ,A(2) + 3
3 放在A(3) ,A(3) + 4
....
N 放在A(N) ,A(N)+N+1

则A(1), A(1)+2, A(2), A(2)+3,...,A(N) + N + 1 为1,2,3,4,..2N的一个全排列

故 1 + 2 + 3 + ... + 2N = 2[A(1) + A(2) + ... + A(N)] + [2 + 3 + ... + (N+1)]

2N(2N+1)/2 = 2[A(1) + A(2) + ... + A(N)] + (N+1)(N+2)/2 - 1

4[A(1) + A(2) + ... + A(N)] = 2N(2N+1) - (N+1)(N+2) + 2


A(1) + A(2) + ... + A(N) = N(3N-1)/4


所以 N 只能是 4K,4K+3 的形式.

N=1,2,5,6,9时无解
N=3: 312132,231213
N=4: 41312432,23421314
N=7; 52个解
N=8: 300个解

方法1(qee用提供)

  1. PrivateMaxAsLong,mycountAsLong
  2. PrivateSubCommand1_Click()
  3. DimW()'每位的数字
  4. DimNum(1To8)AsBoolean'标识数字使用否
  5. DimpAsLong'指针作用
  6. DimFillLeftAsLong'填数剩余名额
  7. ForMax=6To16Step2
  8. ReDimW(1ToMax)
  9. FillLeft=Max/2
  10. p=1
  11. CallBody(W,Num,p,FillLeft)
  12. EraseW
  13. Next
  14. EndSub
  15. PrivateSubBody(ByRefW(),ByRefNum()AsBoolean,_
  16. ByRefpAsLong,ByRefFillLeftAsLong)
  17. DimtAsLong
  18. '往前移到空位
  19. CallMoveP(W,p)
  20. '该位最大可能的值
  21. t=Max-p-1
  22. Ift>8Thent=8
  23. Do
  24. '跳过已经使用过的值
  25. t=GetMaxUnuse(Num,t)
  26. Ift>0Then
  27. '尝试成对插入
  28. IfBeTwins(Num,W,t,p)=TrueThen
  29. FillLeft=FillLeft-1
  30. IfFillLeft=0Then
  31. '显示结果
  32. IfUBound(W)=16Then
  33. mycount=mycount+1
  34. CallShowResult(W)
  35. EndIf
  36. Else
  37. '递归调用
  38. CallBody(W,Num,p,FillLeft)
  39. EndIf
  40. '成对弹出
  41. DoWhileBackTwins(Num,W,p)=False
  42. p=p-1
  43. Loop
  44. FillLeft=FillLeft+1
  45. EndIf
  46. t=t-1
  47. EndIf
  48. LoopUntilt=0
  49. EndSub
  50. PrivateSubMoveP(ByRefW(),ByRefpAsLong)
  51. DoWhileW(p)>0
  52. p=p+1
  53. Loop
  54. EndSub
  55. PrivateFunctionGetMaxUnuse(ByRefNum()AsBoolean,ByValMaxNumAsLong)AsLong
  56. DimtAsLong
  57. Fort=MaxNumTo1Step-1
  58. IfNum(t)=FalseThen
  59. GetMaxUnuse=t
  60. ExitFor
  61. EndIf
  62. Next
  63. EndFunction
  64. PrivateFunctionBeTwins(ByRefNum()AsBoolean,ByRefW(),_
  65. ByValNumberAsLong,ByValpAsLong)AsBoolean
  66. DimpMirAsLong
  67. BeTwins=False
  68. '数字已经用过
  69. IfNum(Number)=TrueThenExitFunction
  70. '此位已经有数字
  71. IfW(p)>0ThenExitFunction
  72. '计算对应位置
  73. pMir=p+Number+1
  74. '对应位置超出范围
  75. IfpMir>MaxThenExitFunction
  76. '对应位置已经有数字
  77. IfW(pMir)>0ThenExitFunction
  78. '一切正常
  79. Num(Number)=True
  80. W(p)=Number
  81. W(pMir)=Number
  82. BeTwins=True
  83. EndFunction
  84. PrivateFunctionBackTwins(ByRefNum()AsBoolean,ByRefW(),_
  85. ByValpAsLong)AsBoolean
  86. DimpMirAsLong
  87. BackTwins=False
  88. '此位没有数字
  89. IfW(p)=0ThenExitFunction
  90. '计算对应位置
  91. pMir=p+W(p)+1
  92. '对应位置超出范围
  93. IfpMir>MaxThenExitFunction
  94. '对应位置没有数字,或数字不一致
  95. IfW(pMir)=0ThenExitFunction
  96. IfW(pMir)<>W(p)ThenExitFunction
  97. '一切正常
  98. Num(W(p))=False
  99. W(p)=0
  100. W(pMir)=0
  101. BackTwins=True
  102. EndFunction
  103. PrivateSubShowResult(ByRefW())
  104. Debug.Printmycount&vbTab&Join(W,"")
  105. EndSub

n=7 时,有52个解:
1 74151643752362
2 73625324765141
3 73161345726425
4 72632453764151
5 72462354736151
6 72452634753161
7 71416354732652
8 71316435724625
9 62742356437151
10 61517346532472
11 57416154372632
12 57263254376141
13 57236253471614
14 57141653472362
15 56171354632742
16 53672352461714
17 53647352462171
18 52732653417164
19 52642753461317
20 52472654131763
21 52462754316137
22 51716254237643
23 46357432652171
24 46171452632753
25 46171435623725
26 45671415362732
27 41716425327635
28 41617435263275
29 37463254276151
30 36713145627425
31 35743625427161
32 35723625417164
33 34673245261715
34 34573641512762
35 27423564371516
36 26721514637543
37 26327435614175
38 26325734615147
39 25623745361417
40 24723645317165
41 23726351417654
42 23627345161475
43 17126425374635
44 17125623475364
45 16172452634753
46 16135743625427
47 15173465324726
48 15167245236473
49 15163745326427
50 15146735423627
51 14167345236275
52 14156742352637

n=8 时,有300个解:
1 8642752468357131
2 8642572468531713
3 8631713568427524
4 8613175368425724
5 8527326538471614
6 8514167548236273
7 8457264258376131
8 8456274258631713
9 8451714658237263
10 8427524638573161
11 8426724358637151
12 8416174358632752
13 8372632458764151
14 8357236258471614
15 8352732658417164
16 8316135748625427
17 8273264358746151
18 8271216458734653
19 8271215648735463
20 8253267358416174
21 8247263458376151
22 8246257438653171
23 8237243568471516
24 8236253748651417
25 8141673458362752
26 8131743568427526
27 8131573468524726
28 8131563748526427
29 8121726358437654
30 8121724568347536
31 8121627538463574
32 8121625748365437
33 7831613574862542
34 7823625374865141
35 7813156374852642
36 7812162574836543
37 7582462574386131
38 7581416574382632
39 7562842576431813
40 7561814576342832
41 7536483574612182
42 7528623574368141
43 7518136573428624
44 7516184573642382
45 7485264275386131
46 7481514673582362
47 7468254276358131
48 7463584376512182
49 7426824375631815
50 7425824675131863
51 7416184572632583
52 7386235274685141
53 7386131574682542
54 7385236275481614
55 7368131576428524
56 7345638475261218
57 7318134675248265
58 7283246375481615
59 7281216475384635
60 7281215673485364
61 7263285376415184
62 7246258473651318
63 7245286475131683
64 7245268475316138
65 7238243675418165
66 7236283475614185
67 7141863475326825
68 7141586472532683
69 7141568473526328
70 7131853672452864
71 7131683572462584
72 7131683475264285
73 6852472654831713
74 6831713645827425
75 6827325634875141
76 6814157643852372
77 6752842657431813
78 6751814657342832
79 6734583647512182
80 6714185647235283
81 6485724625387131
82 6475824625731813
83 6475384635712182
84 6471814652732853
85 6471814635723825
86 6418174625328735
87 6417184635273285
88 6384537642582171
89 6378131645728425
90 6357832652471814
91 6357438654271218
92 6285247635483171
93 6284273645381715
94 6278234653748151
95 6275284635743181
96 6274258643751318
97 6258237653418174
98 6257248653471318
99 6238273651418754
100 6237283645171485
101 6181537643582472
102 6181473654382752
103 6171834653742852
104 6171825624735843
105 6151847652432873
106 6151748653427328
107 5864275246831713
108 5841715463827326
109 5827425634873161
110 5824625743861317
111 5823725364817146
112 5817135643872462
113 5814175642832763
114 5814165743826327
115 5784265247386131
116 5748625427368131
117 5746825427631813
118 5746385437612182
119 5728325637418164
120 5724825647131863
121 5716185347632482
122 5673485364712182
123 5671815364732842
124 5628425764318137
125 5618175264238743
126 5618145763428327
127 5378435624728161
128 5378235264718146
129 5374835641712862
130 5364835746121827
131 5286235743681417
132 5283275364181746
133 5248275461318736
134 5247285463171386
135 5181725623487364
136 5181375632482764
137 5181365734286247
138 5171835463724826
139 5161845736423827
140 5161785246237483
141 4862742356837151
142 4857141653872362
143 4853647352862171
144 4852642753861317
145 4835743625827161
146 4815146735823627
147 4782542637583161
148 4758141657238263
149 4753648357261218
150 4752842657131863
151 4738643257268151
152 4738543627528161
153 4718146257238653
154 4718143567328526
155 4716148537623528
156 4683547362582171
157 4682542763581317
158 4672842365731815
159 4637843265271815
160 4635843765121827
161 4618147365238275
162 4617148562372538
163 4586347532682171
164 4578141563728326
165 4567841516372832
166 4567348536271218
167 4278246151738653
168 4275248635713168
169 4268247516138573
170 4268243756318157
171 4258246751318637
172 4257248653171368
173 4181742562387536
174 4161845726325837
175 4161748526327538
176 4161748356237258
177 3862352746851417
178 3861315746825427
179 3857316154872642
180 3852362754816147
181 3847362452876151
182 3847326425871615
183 3845367425826171
184 3825327465814176
185 3782342567481516
186 3758316157428624
187 3746385427625181
188 3726328457614158
189 3681317562482574
190 3681317465284275
191 3681315764285247
192 3672382465714185
193 3645378465121728
194 3628327561418574
195 3627328564171548
196 3586371514682742
197 3582372564181746
198 3574386541712682
199 3568371516428724
200 3568347526428171
201 3568327526418174
202 3564378546121728
203 3486374151682752
204 3485374615182762
205 3485374265281716
206 3478324625718165
207 3467384516172582
208 3456384752612187
209 3181375264285746
210 3181367245286475
211 3181347562482576
212 3181346752482657
213 3171386425724685
214 3171384562742586
215 3171368524726548
216 3171358642752468
217 2862357436854171
218 2862171456834753
219 2852734653847161
220 2852716154837643
221 2852637453864171
222 2852467354836171
223 2842367435816175
224 2832463754816157
225 2812175364835746
226 2812174635843765
227 2812167345836475
228 2812164753846357
229 2812157463854376
230 2812156734853647
231 2782345637485161
232 2752683457364181
233 2742853467351816
234 2732583467514186
235 2682537463584171
236 2682171465384735
237 2672815164735843
238 2672485364735181
239 2642783465317185
240 2632853764151847
241 2632783561417584
242 2582473564381716
243 2572861514736843
244 2572834563741816
245 2572638543761418
246 2572368534716148
247 2482374635181765
248 2472864151736853
249 2462784516137583
250 2462584736513187
251 2452864751316837
252 2452684753161387
253 2382736151487654
254 2382437564181576
255 2382436754181657
256 2362834756141857
257 1815374635842762
258 1815267245836473
259 1814637543862572
260 1813475364825726
261 1718246257438653
262 1716384537642582
263 1716285247635483
264 1714853647352862
265 1714683547362582
266 1714586347532682
267 1713845367425826
268 1713568347526428
269 1712862357436854
270 1712852637453864
271 1712852467354836
272 1712682537463584
273 1618274265348735
274 1618257263458374
275 1617483564372582
276 1617285263475384
277 1615847365432872
278 1613857362452874
279 1613784365247285
280 1613758364257248
281 1518627523468374
282 1518473564328726
283 1517386532472684
284 1517368534276248
285 1516782542637483
286 1516738543627428
287 1516478534623728
288 1514678542362738
289 1418634753268257
290 1415864725326837
291 1415784365237286
292 1415684735263287
293 1318637245268475
294 1318536724528647
295 1317835264275846
296 1317538642572468
297 1316837425624875
298 1316835724625847
299 1316834752642857
300 1316738524627548

方法2(lg_cai提供)

  1. Dima(1To16),j,s
  2. Subcai()
  3. Forj=1To8
  4. s=0
  5. czj
  6. Nextj
  7. EndSub
  8. Subcz(zz)
  9. Fori=zz+2To2*j
  10. Ifa(i)=0Anda(i-zz-1)=0Then
  11. a(i)=zz
  12. a(i-zz-1)=zz
  13. Ifzz>1Then
  14. czzz-1
  15. Else
  16. Fork=1To2*j
  17. ls=ls&a(k)
  18. Nextk
  19. s=s+1
  20. Debug.Print"'"&ls
  21. EndIf
  22. a(i)=0
  23. a(i-zz-1)=0
  24. EndIf
  25. Next
  26. EndSub

C++ 代码(zhc6211026 提供)

  1. #include<iostream>
  2. usingnamespacestd;
  3. int*numarr;
  4. bool*numused;
  5. voidDoubleN(intn,inti,intc=0);
  6. voidprintnum(int*arr,intn);
  7. intmain()
  8. {
  9. intn,i;
  10. cin>>n;
  11. numarr=newint[2*n];
  12. numused=newbool[2*n];
  13. for(i=0;i<2*n;i++)
  14. {
  15. numarr[i]=0;
  16. numused[i]=false;
  17. }
  18. DoubleN(n,1);
  19. return0;
  20. }
  21. voidDoubleN(intn,inti,intc)
  22. {
  23. intk=0;
  24. for(k=0;k<2*n-i;k++)
  25. {
  26. if(!numused[k]&&!numused[k+i+1])
  27. {
  28. numused[k]=numused[k+i+1]=true;
  29. numarr[k]=numarr[k+i+1]=i;
  30. if(i==n)
  31. {
  32. printnum(numarr,n);
  33. }
  34. else
  35. {
  36. DoubleN(n,i+1);
  37. }
  38. numused[k]=numused[k+i+1]=false;
  39. numarr[k]=numarr[k+i+1]=0;
  40. }
  41. }
  42. }
  43. voidprintnum(int*arr,intn)
  44. {
  45. for(inti=0;i<2*n;i++)
  46. {
  47. cout<<arr[i];
  48. }
  49. cout<<endl;
  50. }

lg_cai还提供了将1,2,3,...N共3N个数排成一行,3个1 之间各有1个数,3个2 之间各有2个数,...3个N之间各有N个数...的递归方法

  1. Dima(1To27),j,s
  2. Subcai()
  3. Forj=1To9
  4. s=0
  5. czj
  6. Nextj
  7. EndSub
  8. Subcz(zz)
  9. Fori=2*(zz+1)+1To3*j
  10. Ifa(i)=0Anda(i-zz-1)=0Anda(i-2*(zz+1))=0Then
  11. a(i)=zz
  12. a(i-zz-1)=zz
  13. a(i-2*(zz+1))=zz
  14. Ifzz>1Then
  15. czzz-1
  16. Else
  17. Fork=1To3*j
  18. ls=ls&a(k)
  19. Nextk
  20. s=s+1
  21. Cells(s,j*2)="'"&ls
  22. EndIf
  23. a(i)=0
  24. a(i-zz-1)=0
  25. a(i-2*(zz+1))=0
  26. EndIf
  27. Nexti
  28. EndSub

代码返回:

191618257269258476354938743
191218246279458634753968357
181915267285296475384639743
347936483574692582762519181
753869357436854972642812191
347839453674852962752816191

分享到:
评论

相关推荐

    数学思维活动趣味题PPT课件.pptx

    其中包含了抢答题和挑战题两种类型的题目,涉及几何、逻辑、算术等多个数学领域。 抢答题环节主要考察学生的快速反应和解决问题的能力。例如,火柴游戏系列题目要求参与者在限定时间内通过移动火柴来改变图形,如将...

    088 马克思手稿中的数学题 C语言源代码文件

    2. 运算符:C语言支持各种算术运算符(+,-,*,/,%),逻辑运算符(&&,||,!)以及比较运算符(==,!=,&lt;,&gt;,,&gt;=)。这些运算符在解决数学问题时用于执行计算、条件判断和逻辑操作。 3. 控制结构:if...else...

    初中趣味数学题竞赛44261PPT课件.pptx

    在具体的题目中,第一题是一道关于算术运算的问题,涉及到加减乘除和括号的优先级。例如,(5-1÷5)×5和8÷(3-8÷3)这样的表达式,需要学生熟练掌握运算法则,正确计算得出答案。第二题考察了几何知识和逻辑...

    小学六年级数学趣味竞赛试题PPT学习教案.pptx

    12. 烟头卷烟问题:这是一道简单的算术问题,将25个烟头分成每5个一组,可得出能做成多少支烟。 13. 盒子嵌套问题:这要求学生理解包含关系,计算总共有多少个盒子。 14. 剪指甲问题:这是一个简单的乘法问题,每...

    加德纳趣味数学系列-强调数字推算的100道趣题PDF

    例如,书中可能会有这样一道题:给出一个数字序列,要求找出规律并预测下一个数字。这类题目锻炼的是观察力和逻辑推理能力,需要我们分析数字间的关联,发现隐藏的模式。在解答过程中,我们可能需要用到等差数列、...

    五年级数学趣味题.docx

    这些题目涵盖了多个数学知识点,包括基础的算术、比例与分数、代数、几何、以及逻辑推理。让我们逐一解析: 1. 这是一道关于比例和速度的问题。根据题目,大人上楼的速度是小孩的两倍,我们可以设定小孩的速度为v,...

    强调数字推算的100道趣题

    《强调数字推算的100道趣题》是一本由法国数学家皮埃尔·贝洛坎编著的趣味数学教材,它属于加德纳趣味数学系列,深受国内外读者的喜爱。这本书旨在通过一系列富有挑战性和启发性的数学问题,激发读者对数字推算的...

    广西北部湾2020年初中学业水平模拟考试(二)数学试题(扫描版含答案).docx

    填空题则更侧重于具体数值的计算和推理,如第13题可能需要解不等式,第14题可能涉及函数表达式的求解,第15题可能是一道基础的算术题,而第16题可能涉及复数的运算。这些题目旨在测试学生的计算能力和逻辑思维。 ...

    《九章算术》 实用数学终身受用.docx

    复旦大学自主招生考试中的一道出租车费用与行驶里程的函数关系题,展示了生活中的数学应用。这类问题要求学生具备快速心算和理解复杂计费规则的能力,而这种能力正是《九章算术》中所强调的实用性数学知识。 上海市...

    蓝桥杯编程猫Kitten模拟试题二模拟题附答案

    **第2题:**同样地,这是一道缺失具体信息的单选题。考虑到这是少儿编程的题目,题目内容可能与日常生活中的常识有关,例如食物等。 **第3题:**本题考查的是数学概念“舍入”。正确答案是C项“向下舍入”,这意味...

    3(1)趣味数学与游戏.pdf

    11. **排列与组合**:第12题是一道关于排列的问题,根据题目描述,可以得出小孩的数量。 12. **逻辑推理**:第13题是基于比例关系的逻辑推理题,需要理解男孩看到的女孩与实际女孩数量的关系。 13. **等比数列**:...

    数学家高斯小时侯的故事连加的简便算法PPT学习教案.pptx

    在一次课上,老师给学生们出了一道算术题,要求将1到100的所有整数相加。这是一个典型的等差数列求和问题,对于8岁的孩子们来说,通常需要逐个相加,计算量相当大。然而,小高斯却在不到一分钟的时间里得出了正确...

    七上第1章自测题2【华师大版】精选.doc

    1. 文字算式游戏:这是一种利用汉字的数字含义进行数学运算的趣味题目,主要考察学生的逻辑思维和基本的算术能力。例如题中给出的算式(1)至(5),需要将汉字转换为数字,然后进行乘法或加法运算,得出正确答案。 ...

    小学数学100道智力题答案.doc

    【小学数学100道智力题答案解析】 这些智力题涵盖了小学阶段常见的数学知识点,旨在锻炼...这些智力题覆盖了小学数学的多个领域,包括算术、几何、概率、逻辑推理等,旨在通过实际操作和思考来提高孩子们的数学素养。

    《公共基础知识》试题预测数学运算(2020年版)_5.docx

    这些题目涵盖了多个数学运算的知识点,包括但不限于不定方程、利润与成本问题、时间与周期问题、速度与行程问题、算术运算以及趣味数学问题。下面是对这些知识点的详细解释: 1. 不定量方程问题:第一题中,通过...

    《C++程序设计》课后习题解答(第二版)

    这是一道填空题,目标是在数字间插入加减乘除运算符,使得整个表达式的结果等于100。解决此题需要熟悉算术运算符的优先级,并能运用回溯或深度优先搜索等算法。 7. Chapter 4 这部分可能涉及C++的基础概念,例如...

    (完整word版)C语言编程练习题绝对经典!.doc

    1. 数学运算: resourceName-"马克思手稿中的一道趣味数学题",该题目要求编写程序,采用穷举法求出结果,解决男人、女人和小孩各有几人的问题。 2. 数学运算: resourceName-"编写程序,根据公式求 e 的值",该...

    蓝桥杯编程猫易错题汇总模拟题附答案

    **题目描述**:从选项来看,这可能是一道选择最优解或多条件判断题。 **解析**:正确答案为B。这类问题通常涉及到多个条件的判断,需要通过分析题目给出的所有条件来确定最合适的选项。 ##### 题目6:单选题 **...

    《通用知识》考点数学运算(2021年版)_1.docx

    3. **逻辑推理与排除法**:第三题是一道逻辑推理题,涉及到天平的使用。根据天平称量的结果,需要确定哪两个球较轻。通过分析每次称量的结果,我们可以逐步排除不可能是轻球的选项,最后确定轻球的编号。 4. **不定...

    河北省沧州市2017_2018学年七年级数学下学期期末试题新人教版

    19. **逻辑推理**:选择题19是一道趣味性问题,需要根据图形的规律推断未知数的值。 20. **数列规律**:选择题20涉及到正整数的排列规律,需要找出数列的模式来确定指定数的位置。 以上就是试卷中涉及的数学知识点...

Global site tag (gtag.js) - Google Analytics