33 1234
发新话题
打印

来, 给大家出道题目做做.

来, 给大家出道题目做做.

写一段程序, 要求, 输入几个数字, float 的, 并给出一个结果, 将这些数字相加, 但是不能将一个数字重复加相同的数字, 列举相加的结果, 如果结果等于给定的结果, 就给出相加的表达式, 如果没有, 就取和结果最近的一个表达式9 s" V& M) H  E! K2 \- y
例如输入 1, 2, 3, 4, 我们可以这么加:
! ?$ V8 G8 V+ q1+2
1 f* g2 v7 Y, G2 }也可以
" B+ P! k, ]' G% D3 n2+3* f6 h- A! h' B4 B! j' p* U6 _
也可以
3 T, R9 l" d0 a0 C* O1+2+3* Q4 ?1 c4 w0 H& n! K4 ]1 q
但是不能
+ q$ O1 T0 S& W1+1+1  A5 }5 _( ]+ G" C2 M# z" M
或者 1+2+2, ! H4 c0 t# F9 c) Y
6 D. c  b: \# O# X3 N( f! K3 E
一个数字只能在表达式里面用一次.
' k: E$ r0 o2 Z' g3 v% u& W0 w
/ }' ~+ Y* S; M' j6 B举例1:9 ?  ^# r" a- i& p  l( o
输入 1, 2, 3, 4
4 P1 C9 o7 k. o5 A  ~4 @需要的结果是 3, K' Y4 E8 v  v7 l0 g  ^

4 p9 x3 L, a7 v% C2 P那么输出 1+2 = 3 就可以结束了
/ S; B! X7 |) b4 M! W& j' ]3 }: {# B9 ?
举例 2, 6 l- C" w6 s# w/ I
输入1.23,  -2.1, 28% i. E3 V5 H( V6 l2 f8 n4 \
需要的结果是: -10.2$ W) |$ D! o' Y
那么输出 1.23 + -2.1 = -0.87. 8 Y5 {/ [; j* j% v. W  U
这是最接近的结果, 和需要的结果相差 9.33: L4 o1 B6 V( L0 v% a

/ t4 l. N$ d& ?4 c  F% Z9 g4 h呵呵, 大家来做做看      
-----------------------------------------
http://www.darkspy.org/blog

自大的人把宗教当迷信,无知的人把迷信当宗教

TOP

做出来有什么好处啊,我已经想好算法了
$ |, s$ |8 m) o! j- x4 N' X给你个提示,先排序      

TOP

没有好处, 你可以不做.$ E; Q; Q: j0 i, @3 Q- g3 L; d) y
  S. |! \  u: n* c
不用给我提示, 我是出题者, 不是提问者.      
-----------------------------------------
http://www.darkspy.org/blog

自大的人把宗教当迷信,无知的人把迷信当宗教

TOP

哈哈,二楼有意思      

TOP

还没有人有兴趣做?      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

是啊................      
-----------------------------------------
http://www.darkspy.org/blog

自大的人把宗教当迷信,无知的人把迷信当宗教

TOP

排列的算法……      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

[QUOTE=LinuxFanTgh]做出来有什么好处啊,我已经想好算法了
2 C: O0 F; x3 ^: x. Q给你个提示,先排序[/QUOTE]
- j4 H+ m) L( Q# P9 Y6 D) V+ _按大小排序,然后再比较大小?……貌似并不是必需的      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

最多可以输入多少个数字呢?少了就dfs,多了就……      

TOP

楼上可以考虑用模版哦,STL不用考虑存储空间哦还可以顺便用下自带的排序功能,如果有必要的话。      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

 33 1234
发新话题