发新话题
打印

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

看来都比较受梏于书本上的知识,拿到实际上就没想法了。概观大部分的回帖都只是对排序有想法……      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

我前面也说错了,不是排列的算法,而是组合的算法……
/ ]# @! A- |& _: T* I4 r不过也没人指出……      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

再猜一次吧,算出所有可能和的结果,跟所求比较。      

TOP

先给个程序,看看对不对?' z$ u5 O3 U6 y. b' K5 A0 q9 Q
3 O$ W4 f, m3 \0 k# M
#include <iostream>: Z8 y0 E' m" A3 p2 l( a; p9 G. j
#include <vector>
& z7 [% v6 m/ i% r: B#include <set>
0 R/ g- r- F1 z8 N8 c$ d9 ^" l0 q' w#include <iterator>) K6 ?, i) C& T2 ]4 H; \7 @
#include <numeric>$ |: z! ?7 Y: ~
    + b. Q( _! E- B$ \
int main() {
6 S( ^2 F5 C. ^- @0 f' U' P    std::vector<float> v;              //v.end()-1是要凑的结果
. `' R- m2 m' m7 `+ S# u' W    std::copy(std::istream_iterator<float>(std::cin), std:: istream_iterator<float>(), std::back_inserter(v));' D- W! F+ W$ |. S
    std::set<float> s; 4 c3 T3 L( g% ~. g) t
    for(std::vector<float>::iterator vi = v.begin(); vi != v.end() - 1; ++vi) std:: partial_sum(vi, v.end() - 1, std::inserter(s, s.begin())); # i5 _& b; p: s/ [* ~
    s.insert(*(v.end()-1));
/ t/ ~5 E  A3 O3 z  _3 A    std::copy(s.begin(), s.end(), std:: ostream_iterator<float>(std::cout, " ")); * }$ l0 y  K( ~/ D+ P# s" }5 |$ L4 `6 s
    system("pause");
7 }# Q: P' W9 B( l. U9 E; J}
1 p+ w. u- p8 P, t$ Q7 ^
  i7 h1 ~7 S: {6 l/ w8 @. @+ v! A1 k $ f8 a. K4 Y. U) U0 g" x
题目举例 2
8 Z) L% T) S$ U输入:
1 |! N2 M$ Z% U4 r; M: c9 Y1.23) X' C0 {/ _2 J4 {0 t% k
-2.1
7 i0 N: M3 Y* Y# ~9 c28
' n. J: g1 _0 a/ X-10.2 ////这个是需求的结果" {5 t4 p; N6 N% s+ w
a ////这个是用于输入结束用的
9 T/ U: J7 l! K- L& K
4 L1 S* |5 m# r7 e- K+ ]9 I9 y结果全打出来了,是排序的,自己找找吧,那个离-10.2近(懒的去判断了)! j& Y) [" O9 ~' h" h/ J
还有就是正好等于-10.2时,也没判断(还是懒)      

TOP

还有原来给出的数算不算?& J: u. [3 K' V: q
-2.1 明显比 -0.87 要跟 -10.2近。$ E  K* F# G: T! p
要是不包含原来的数,必须得加的话,for_each(..., erase), erase好了。      

TOP

都懒得去判断, 那还做什么题目?
) e) _1 J1 j9 j/ h需要打印的必须要打印.
9 M% L( C- u& d! X& j& j: o程序是严谨的. 怎么能说懒得做就不做呢?
$ c9 W* l! S- k! q/ a0 f
1 I' O# \, \  x# N5 H原来给出的算子当然不算在内了.
$ p2 k9 ^- |0 U& x1 H5 U3 x6 C2 K# X$ C/ Z+ S/ q
另, 楼上的代码, 是错误的.' c. y8 x$ S) C' t& ~) y
4 ^" }9 w* J; I$ Q9 f# n
如果要做,就认真的做,做的对不对是另外一回事,态度很重要!      
-----------------------------------------
http://www.darkspy.org/blog

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

TOP

算法有问题,中午改了% X5 k2 y, ^5 B" y
/ y- w& Q0 `# @' `1 p  k
#include <iostream>
# Z* e  l5 R( e/ y  i( `( R#include <vector>
  h% a$ j4 J' D9 x* ?#include <set>
7 ?6 a9 b. ]' K' \% w1 q6 p) K#include <iterator>4 z5 q4 [" P2 S
#include <numeric>
( Q7 m" W5 [* C/ w" @#include <algorithm>
( l: m; V3 ]2 Q, Q. Y# {# W" Vint main() {* H3 l5 w2 |) v3 V& R( g' t
std::vector<float> v; //v.end()-1是要凑的结果
' X+ |( p2 S6 [6 |1 Wstd::copy(std::istream_iterator<float>(std::cin), std:: istream_iterator<float>(), std::back_inserter(v));8 S' J! R& s# |7 m1 X# q2 k
std::set<float> s; ; W; {$ g9 R4 H5 m7 A& F
std::vector<float> temp1(v);
; e1 }+ X4 g; zstd::vector<float> temp2(v);( b% i+ d/ f) ^; K2 V8 D
std::vector<float> vv;
, ]. U! ]/ T" m7 I! M. B8 ^# kfor(int i(0); i<v.size()-2; ++i) {
0 Q6 c& K. z7 `, _std:: partial_sum(temp1.begin(), temp1.end() - 1, std::back_inserter(vv));# |3 O; ?8 J8 x/ Y
vv.erase(find(vv.begin(), vv.end(), *temp1.begin()));
0 h$ o. k3 f; J( o, ~for(int j(0); j<temp1.size()-3; ++j) {
4 j5 S1 d' d; l7 V" P; o+ M1 S; vtemp2.erase(temp2.begin()+1);) s3 @) K/ ~; r9 x0 E5 J
std:: partial_sum(temp2.begin(), temp2.end() - 1, std::back_inserter(vv));
1 |5 j  ?1 f3 u) J& @, ~4 Tvv.erase(find(vv.begin(), vv.end(), *temp2.begin()));
$ z, p  o3 ]7 T% g; M$ [}
; {3 Q# u' ^. X; R' y7 Ftemp1.erase(temp1.begin());
+ d- d" C* _0 t. wtemp2=temp1; 4 o$ @/ S7 W. j, M% b# v# V
}
2 _1 x2 B/ q' pstd::copy(vv.begin(), vv.end(), std::inserter(s, s.begin())); % r7 O( I( W% ~
s.insert(*(v.end()-1));
9 X$ z  S, @3 _' O- [1 A) estd::copy(s.begin(), s.end(), std:: ostream_iterator<float>(std::cout, " "));
5 f# o& u) M! v$ |' Xsystem("pause");& m5 q; h" D1 g8 Q! t! ^
}& N! o; d( v" G* K

. o" e9 n* W$ N
: r1 v" j, B+ {! ^9 ^% m8 U
5 n% D  p# \( B看看对不对?      

TOP

太寒了,放了一个月都快到了....      
-----------------------------------------
http://www.darkspy.org/blog

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

TOP

#include <stdio.h>
* L, i; Z8 b: B1 C! N  \#include <stdlib.h>
# S. E& Z4 ]5 t% p9 f- W6 V) _( \* V! C4 x* Q$ J
int main(int argc,char **argv)1 i; j* v9 d6 c& ]1 @5 s4 w
{9 [7 [; j4 f' Q( C$ }
        int i, j, t;
* G8 e  N# }; V( Z+ p        char c;6 P3 W# J6 \7 c
        float sum, array[10];
% Z4 O( Q6 g# a# @) G/ `        sum = 0.0;: H% T- t$ L. O! d
% N/ s: {& h) V4 m( s
        for (i = 0; i != 10; ++i)
8 ]' R; o" l" H2 Z        {
4 S# q8 q; L* {2 [( O$ A" X5 U                scanf ("%f%c",&array,&c);, \5 {9 ]4 E) e6 o
                if (c == '\n')
5 E% l3 ]4 i6 P  o0 \1 R                        break;, w' Q$ d$ I0 B& M. M
        }- t; a5 a( ^' H- c4 d
0 u# q+ q0 j) u& d
        for (j = 0;j <= i; ++j)# J- ~% m" M6 N: n0 K8 L6 V
        {# \% l' z4 {& H5 K
                for(t = j+1; t <= i; ++t)$ B8 y( n( ^& X, @( [
                {* \4 o7 @4 O2 s) K2 H5 U- a- b: l
                        if (array[j] == array[t])
" L9 K$ x; O: w6 U6 G0 _                        {
7 [- ^, Y" b1 p) T                                fprintf (stderr,"Input error !\n");
4 Y- j: M5 {, j                                exit (EXIT_FAILURE);$ A( |' l. G+ G$ R; Q
                        }
% @; g0 P, ]5 Q  L& w9 L- }- ], M                }5 O* p- @8 ]4 B8 T$ e" v0 I
        }7 V/ ^) s2 y  J3 c1 G  I4 N

4 B' P* F! Q0 r4 s        for (j = 0; j <= i; ++j)
: }; h/ Q+ i- m* p" X        {
& N+ L; g6 v  h. \- T$ l                sum += array[j];
# G4 W" C( _' h2 ?: z1 d7 ~& q, Q        }1 m# |* O, v- j$ t
        printf ("Sum: %f\n",sum);
7 e/ Y) G9 Z% E" P. E. T        return 0;) r7 }2 Z4 b# p0 P9 P& c
}      
╋ ┃ _╉. _╉_╉ _╉_╉ `?╅? ̄ ?╅??╅?? ╅ 努力学习.研究技术.消失网络一段时间! Give up ! give it Up!

TOP

哈哈,有趣!      

TOP

发新话题