QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4285|回复: 1
打印 上一主题 下一主题

算法入门系列之一

[复制链接]
字体大小: 正常 放大

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:6 Z3 v! r  o" L1 I) v: O8 n( d
1:. _0 P: q' f! e7 E1 e

0 X1 j$ ?1 A, p* y3 o' K*- A$ a/ _$ N! H7 \+ j
**
% N; f  e- G5 J6 ^; }  L***+ E6 [5 Z5 H  A% d- {) z) N
****
3 Z- c6 }  E( _8 ]0 J. H*****
# w$ D8 u1 m6 Q* m" B7 \/ V  ^" x" c******
, e7 D% ^  b, j: ~6 [0 @/ [7 M- Y& S
程序如下:
, p+ n: E: ?9 _: E, R, h9 b7 x+ ~' [7 w/ K5 A
void fun1(int n)* ]& a& F& ]7 q9 P2 f1 J
{& Q" c' z% D* C, b9 T. T
    for ( int y=0; y<=n; y++ )
9 j. C5 d8 @2 _" s' B    {
) n0 `6 _0 r* V8 e+ ?        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关
, r! B$ r4 _( Y6 Q% Z; u/ A5 G1 {        {
$ m* d; V. Q) \: Y            cout << '*';* d3 e' j& K+ E$ p# k
        }4 Q; y* l* u: H6 F/ i5 z
        cout << endl;//换行7 A; Y5 U& b* p
    }/ i  L0 f$ I' R7 x7 T
}( ~) ^% B  k0 G- w0 E

& ^+ n% e6 V- }* _$ ]- O2:! a. S0 u. W4 _, |" s: [( g
----*----
7 W4 G6 Z3 i9 E" Y' p+ d---***---
5 b5 ?& _6 `% G--*****--' }3 B8 ]- }5 C* t. U
-*******-
5 x% \8 |3 [: a! |) `( i*********
/ p% ^# q' |5 ~4 h  E. [
6 F0 I' b" B8 B! V; ^9 H这组就复杂些了,每一行都分为3部分,应该分别打印。+ R: z# d- X" A$ F) b0 ~' [
程序如下:$ r8 ^. W# p: E; U7 l: S$ X

% K! I& t" ~# d( _) t9 j- g, Yvoid fun2(int n)) i6 I/ o  K) L
{. N& j) V$ c8 s
    int s,x,y;, P5 z1 z' H) V: X0 k! ]4 j
    for ( y = 0; y<n; y++ )
6 Z6 ^. ?+ a# x" L# Y1 M    {
# m6 A  q" g: h! ~! l7 ~        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点- ?9 f1 m) Z; v4 l
            cout << '-';: p, X  n* c4 L# t" q
        for ( x = 0; x < 2 * y + 1; x++ )
0 G& i* ~' ^# A' y" C. h* N; p. e            cout << '*';
2 v# @2 D4 \% w& _* _2 X* }, Z        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行
- S0 P4 e3 V2 O9 m& g            cout << '-';
: Z% I- M0 R& O* b# p+ W        cout << endl;
7 ?& r$ @$ d0 o2 U6 v. V    }6 G$ k! Q$ ~2 B) v) o$ |+ z
}9 G' k2 \- v; {0 ?* D& ^, \
; M0 `! i) H5 p4 L$ n  o& B) h
3:
* ]' I6 K5 E/ [8 \$ ^, |
  E" Q( B0 |, X: ^1 z. v----*----6 R* i" O3 n1 z# Y; n3 E
---***---5 f" g* L. y: W$ x2 ?: |
--*****--
+ L* n! z- p2 R( S9 \% z-*******-- F5 U, T# p  f& K$ y0 ^; P6 [: R  I
*********# e" E* ^+ D! N* x
-*******-  X; ~% V' y, n
--*****--7 e4 `' a4 ^0 S& d- K* S. Y: w2 C3 J
---***---8 h7 d0 y/ i# b
----*----
5 ~6 ?( Y( c% T( M
% R  q. m4 D+ z6 W' T- J# R# J" C这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现8 X0 Z# V% B9 F4 w; M+ e0 O- N$ [
打印下半部的程序:2 {8 G$ q, ?- D7 F$ o' Y: n, P7 M
void fun3( int n )
- F# x, T6 t1 q0 [. b" B{
* g, I. ?3 v- ], t/ m    int s,x,y;
* c6 [$ g- d( b( b- P    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了5 c( z+ y! ^6 i- \2 X1 `4 ~5 V1 O' P  M
    for ( y = n - 2; y >= 0; y-- )  & s$ p2 S6 Z- G
    {+ P( [/ C8 h' U0 e
        //循环体没有改变3 E5 F! }; p* a% r; x
        for ( s = 0; s < n - y - 1; s ++ )4 [7 o. [! H7 S2 m6 T7 |& c9 w/ t
            cout << '-';3 E" E$ q5 m9 Q% d; ?7 f
        for ( x = 0; x < 2 * y + 1; x++ )
, p/ S) N6 `" S' o" D! N% h            cout << '*';
" t4 s& o1 M! }$ ^        for ( s = 0; s < n - y - 1; s ++ ). F7 o8 b9 O0 {! C
            cout << '-';7 x! x" Y+ m) m0 h- K
        cout << endl;1 I: M5 B9 T$ L! a, G3 ~' R, s
    }
7 ?1 m1 x+ J+ O0 u}% A# K" W; z0 q8 A* J
3 r; H7 b9 p! V4 [
要打印整个图形:
, @/ ^" S6 z/ k) p
) {* v& m2 G7 H9 }3 P& X, Rvoid main()
+ C; S9 S6 E" y# B; L. V' |0 |( g! j{& v# N' S+ `+ }/ Y% @# v
    fun2(5);//绘制上半部分
7 `$ T- E$ X/ k% F* a7 m8 K    fun3(5);//绘制下半部分. ?0 e& A% z" i2 ]
}
, u* w. K  |$ a8 j5 ~
; N! t; |! N6 d
* \4 e, z7 ^9 X4 E9 d这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.& B" |9 U0 I3 m6 A0 }1 m: v! Y
</P><>
</P><>支持</P>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-9-1 21:28 , Processed in 0.518861 second(s), 62 queries .

回顶部