33 1234
发新话题
打印

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

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

写一段程序, 要求, 输入几个数字, float 的, 并给出一个结果, 将这些数字相加, 但是不能将一个数字重复加相同的数字, 列举相加的结果, 如果结果等于给定的结果, 就给出相加的表达式, 如果没有, 就取和结果最近的一个表达式4 D( B+ Y0 @  h8 ?0 ^3 b/ X
例如输入 1, 2, 3, 4, 我们可以这么加:
% o! q+ S. c' n1+2
% Y9 d5 I' Q2 ~) i6 p; }3 G! f6 R也可以
7 _' _8 S8 \" |7 @; @# j+ D2+3
5 e/ F* w$ G  e也可以 7 q! R( v+ t% h3 A7 G3 e+ n
1+2+3, |+ Z4 `5 ~) {$ }+ t* W
但是不能" P% O1 E/ \2 l3 p7 L- Q2 Z2 f8 `
1+1+1
2 Z. I; V& {/ p! e或者 1+2+2, 5 ]; i0 h! Y9 ^% N* a7 U. P
$ n6 W5 h  v3 e* p
一个数字只能在表达式里面用一次.
% _1 ~. w( ~2 C
, e, V( d1 u* n2 O举例1:
0 J6 I9 ~2 ~4 c4 j输入 1, 2, 3, 4! N* }4 J( o) O+ U5 a) }
需要的结果是 3
. p( t: W9 O4 w9 |7 F; a
8 X8 [& o: r  W- Z4 ^0 e  w  d那么输出 1+2 = 3 就可以结束了
' o5 z* D+ Y( b4 [" @3 O4 U/ H% w$ g9 t0 d2 T* f
举例 2, 1 T  n( B& q8 v. a2 A+ C: K
输入1.23,  -2.1, 28
8 r$ H' o6 `8 X6 |4 H( V需要的结果是: -10.2' e3 I* ?4 d3 f& L
那么输出 1.23 + -2.1 = -0.87. 2 h- m; P9 y/ b* K( W& Q
这是最接近的结果, 和需要的结果相差 9.33
; t; z/ `7 o3 Y6 a# Z, N* [6 s2 v  Q( O* t+ V8 x- p
呵呵, 大家来做做看      
-----------------------------------------
http://www.darkspy.org/blog

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

TOP

做出来有什么好处啊,我已经想好算法了% ^0 K3 a; \6 @8 D- ]; m
给你个提示,先排序      

TOP

没有好处, 你可以不做.) O3 ^+ f7 j- h5 ^9 \+ A, J
1 O* b, J: Y" y, i1 G. r' L7 f
不用给我提示, 我是出题者, 不是提问者.      
-----------------------------------------
http://www.darkspy.org/blog

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

TOP

哈哈,二楼有意思      

TOP

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

TOP

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

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

TOP

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

TOP

[QUOTE=LinuxFanTgh]做出来有什么好处啊,我已经想好算法了. O* u4 [- m( \' g& N; r
给你个提示,先排序[/QUOTE]- C- q+ q2 e( B' T
按大小排序,然后再比较大小?……貌似并不是必需的      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

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

TOP

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

TOP

 33 1234
发新话题