各位兄弟,我的Pascal太菜,问个简单的问题。(50分)

  • 主题发起人 主题发起人 depale
  • 开始时间 开始时间
D

depale

Unregistered / Unconfirmed
GUEST, unregistred user!
1到10之间用加减乘除,按顺序 如何使得得数为2002?要输出运算方法,谢谢?
PASCAL语句如何写法?
 
呵呵,考虑一下数学算法先。[:D]
 
思路:
三个数组搞定!!
一个放数值
一个放每个数值的使用次数
一个放运算符
 
1到10中每个数字只能用一次,而且是按顺序的,题目如下:
在1到10中填入+,-,*,/,其中运算符号可以重复,而且只能用5次,相邻数字可以合并,
如:1 2 可以为12。可以几个一起合并的。
1 2 3 4 5 6 7 8 9 10 = 2002
结果能反馈出来。
请各位兄弟能把实现过程帖出来看看(代码),谢谢!分不多可以再添。
 
哇拷!好难的数学题啊![^]
 
先给出思路:
1,把5个加号把10个数字分为6份,可以找到所有的分法。
具体我用递归, 1+2+3+4+5+678910
1+2+3+4+56+78910
1+2+3+45+6+78910
1+2+34+5+6+78910
……
1+2+3+4+567+8910
1+2+3+45+67+8910
1+2+34+5+67+8910
……
1+2+3+456+7+8910
……
大概就是这样递归出来,然后没递归出1种新情况(即改变一个+号的位置),分别用
-,*,/代替 继续递归。
恩,思路大概如此了,具体怎么实现嘛,让我再想想。
 
可以这样,定义
0-没有运算符
1-+
2--
3-*
4-/
然后用个9层循环(每层都是for Ai:=0 to 4 do //i=1..9)
然后再计算是否为2002
 
多人接受答案了。
 
后退
顶部