主题:刚考完,有一题想问一下大家
Matodied
[专家分:7560] 发布于 2007-05-14 15:16:00
我在考试中有一题没做出来。
有一道算式:
[b]1 2 3 4 5 6 7 8 = N[/b]
上算式中的N由键盘给出(1<=N<=100),请在算式的每个空挡内都填入+、-、*、/四种运算符中的任意一个,使结果等于N,而且要求给出所有符合条件的方案,并统计个数。
回复列表 (共18个回复)
沙发
moz [专家分:37620] 发布于 2007-05-14 18:30:00
旧贴慢慢翻,有很多方法。
板凳
强强 [专家分:4740] 发布于 2007-05-14 20:29:00
从左到右还是先乘除后加减
3 楼
Matodied [专家分:7560] 发布于 2007-05-14 21:20:00
按照运算顺序。
4 楼
ninke [专家分:60] 发布于 2007-05-15 11:04:00
方法:穷举法
程序模型:循环产生运算符,计算一个算式过程封装为模块,表示符号的数组为参数,依次进行判断计数.
模块中是:两个数组,一个数组放参加运算的数,一个数组表示符号,一个变量记录位置,对符号数组循环取符号,先取*和/,再取+和-,取出的符号和两边的数运算,算完将两个数组后面的数前移.
不知道是不是复杂点了.
5 楼
staa [专家分:3690] 发布于 2007-05-21 11:31:00
要求出所有的算式只好用一个7层循环来解决了.
考试时出这样的题似乎有整人的嫌疑,太费时间
6 楼
moz [专家分:37620] 发布于 2007-05-21 11:40:00
哦,老STAA,用一个循环代替七个循环,再分解就是了,
记得以前好像是大头的做法, n \ 7 , n mod 7
7 楼
Lovely哆啦 [专家分:1360] 发布于 2007-06-01 21:26:00
这是合肥市2007年"讯飞杯"的第三题,难道你没有编出来吗?
8 楼
Lovely哆啦 [专家分:1360] 发布于 2007-06-01 21:28:00
moz的方法不可行,考试时有一个调试数据很大,像这样是不行的!
9 楼
moz [专家分:37620] 发布于 2007-06-01 22:46:00
从左到右还是先乘除后加减?
有没有括号选择?
[url=http://www.programfan.com/club/showpost.asp?id=43620&t=o]先参考一下这一张旧贴[/url]
10 楼
Matodied [专家分:7560] 发布于 2007-06-02 09:09:00
8楼的,我不是告诉你我得了72分吗?就是这道题没做出来,其它的都做出来了。
我来回复