|
|
楼主 |
发表于 2005-12-6 16:03
|
显示全部楼层
6、编程:读入一个正整数,把其和是该整数的正整数序列输出,如27,结果为:2--7,8--10,13--14。; }1 |' e( N' B0 T
. t4 ?9 Q' u+ p
源程序如下:" e9 z' S; O& v$ p1 H P0 k
#include "stdafx.h"
9 m7 @2 k, ^. m. ?- Q6 b#include <iostream>
6 a: U; ?2 [5 O) h7 w/ X9 ^* a0 l" ausing namespace std;+ h7 i8 e* b- {! l3 g
+ h- I# S5 n2 I" }. m
int _tmain(int argc, _TCHAR* argv[])& c" I4 S1 p' v' Y. A
{
! r5 c; [* k& I+ |" q+ j' T# [' C int n;
|0 j9 {# N2 F8 E2 z: c* _ cout<<"请输入正整数:";- S6 V, t1 i6 w W& E
cin>>n;, `8 F6 ~' C. Q1 _
if(n<= 0)exit(0);2 m3 K) T3 T. L7 s( m& R8 P
for(int j = 1; j< n; j++){$ [& u) G1 \$ ]# X2 e, i& B8 r
int i = j;
- @1 O y/ |" a4 x/ N9 E int begin = j;4 H% S8 E6 z) H9 h
int sum = 0;, w) ?# |5 d: k( t7 h$ c" d d
while(sum< n){6 H d3 g/ q; h7 Y
sum = sum + i;
, d8 m2 B0 S$ G5 u" O& I i++;
V3 \! j! R3 [% A% K }6 l' r+ }& s/ D/ ]( w" h: |# I9 y
if(sum == n){ //符合题目要求,输出结果
% i. u" d) L$ Y7 e for(int k = begin;k < i; k++){
- E6 X- s& Z1 w6 ?5 r% u: G cout<<k<<" ";
6 ]: @3 h9 ], T, Q3 p7 K0 V2 e }2 a2 r# {5 L7 |5 e7 }
cout<<endl;
. |( E. p& O( K9 L+ f, J+ ^ }$ `3 V. k. n* d% b5 f/ G" R
}4 ?! h( d0 @3 T8 i3 B% |
cout<<"OK";
1 R% D, k( p# q7 ]$ o# ` return 0;/ i% ]2 s% c Y: Q) B q' L
}# Z- Q+ U+ K `- k
/ F: p% \4 A3 S8 m6 y7 x
输出结果:1 z" s- M P9 x+ D. A% C* |
请输入正整数:27
+ C( T. A- `5 J2 3 4 5 6 7$ s" T: G* ^8 y3 O
8 9 10
6 [% z) B$ U- w% \! ^" X4 j+ p13 14
5 T" T) p7 B1 G) v) _, jOKPress any key to continue# e; X$ b* D5 u* |$ v
. {9 O6 R, @7 Z' r C1 y[ Last edited by dy.f on 2005-12-9 at 12:09 ] |
|