QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:
  B# N$ U; t  |6 |1 U4 r6 X1:& ]" f+ S; ~7 M0 l: r7 r9 ~

# {4 U6 a! a0 O  P*
6 t; B, \: o& m# H( w% S+ A; G**
9 J( }/ O2 g: a5 c) ?***; w5 S& ~5 G2 q0 n
****( x1 l4 u6 V3 h
*****, n3 w/ m! Y1 }/ C3 j4 [$ j
******( e; S) M& j3 z0 R. e0 ?% S! b

, o) ^- j0 i% V- e程序如下:/ i( a% j* j  q
1 y1 v: l" P$ H/ V+ [8 c
void fun1(int n)
1 ]3 q/ ]+ Y" I2 W( f- X- ~( e) f{( e* e$ p. r5 F! n0 n3 `% X
    for ( int y=0; y<=n; y++ )
" B4 q* v7 {  E: {) u) K7 S% `    {0 ]: k- J4 J9 r6 l- F2 H2 h& J- Y, Z
        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关
9 o( J* s3 f1 N1 X/ f+ P$ T        {9 ^. y; o- o- s, u9 T! @. V' _
            cout << '*';
1 _# Q* K3 a: H  `( w% c1 v        }! f. A) X0 ]+ c0 \3 y' c
        cout << endl;//换行# z, @4 D7 v* J7 {1 u* U1 E
    }: B: [- _: x  a$ O4 N. I7 U  \: H
}
  D5 r, \7 t. h' {
2 @/ K9 v  \6 w: k, m2:
: J# {( N4 C) Z, v3 J----*----/ X) ]' C2 A7 E7 F. F
---***---' t: v4 ~2 B* h/ ^8 m, u4 ]
--*****--4 }$ _' }5 \: ]" b
-*******-
! k) Q5 y8 }9 ~+ I*********
1 K% e% b$ A7 p
/ B6 |  M7 A. {6 M' ^' u2 [' m这组就复杂些了,每一行都分为3部分,应该分别打印。
0 f' s: F+ C0 Y  k/ R程序如下:" o0 _! Z9 |% B+ ~

( U# z6 M# v! {' ]0 E, @3 Uvoid fun2(int n)
3 J6 h* ]- ^" q( V$ s( K{* {/ a% d1 j+ E/ N- U' u: v' t% k7 Z
    int s,x,y;
+ J  ]& e' z1 `" C" ^; |    for ( y = 0; y<n; y++ )# [0 F- Y+ t: V
    {
9 O, l& X; |& ?+ ]        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点
4 Y4 S. L/ s5 t+ U9 T) u( i            cout << '-';& c3 V9 `7 z* p7 x  o: \7 |
        for ( x = 0; x < 2 * y + 1; x++ )
! O5 O+ ]5 N5 T            cout << '*';
* D$ W6 t' e) a% v! I        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行
" @0 o! P, a3 u            cout << '-';
5 A, h4 _& P2 t$ I6 g        cout << endl;
6 X2 R, y- j( d3 Y0 I' Y    }
4 G1 [* C6 @. N: w' q}1 ]3 X5 k% V' l0 E& _$ j+ n. ]* G

6 O1 @$ ]! S/ f/ F1 c  j3:
+ _- d" v; r1 I9 `* r: u
- |3 k& E& J: J- M9 N----*----# y9 y8 I+ S6 ?6 s5 N& R
---***---
, t: h( y1 \% A! b! V% f--*****--
- I6 x, C/ y# A4 K& U-*******-# g$ n4 g' V: |$ O) d" Y1 l) G9 o% }
*********) S5 h3 a9 n5 ?2 t
-*******-
' P, g- O3 ]6 u$ W8 M3 M--*****--
6 y# F' x( G' C/ `$ O! K; [9 U0 Q---***---& P% d) e/ f! k1 Z
----*----
* C( N! @; Y. F7 m) u0 D: N# H' T) @2 G+ _4 U* a9 c/ ?& H
这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现9 V- c+ {! d; p; u; Y: o
打印下半部的程序:) U) ?+ E/ e8 n5 P: _7 t* Y
void fun3( int n ). |: k$ F/ b1 L& A  Q
{. }( i% \; H- v3 e' x
    int s,x,y;
0 a. p4 L! s' F1 Q, j    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了
0 i7 E# \8 G  c! w/ l4 W    for ( y = n - 2; y >= 0; y-- )  
. r6 L4 l% y- n, U9 _    {
- c8 p2 a# ]" d2 P# U        //循环体没有改变
8 y" e) a* ]# K2 V7 Q        for ( s = 0; s < n - y - 1; s ++ )
1 x  y4 m) I* Q/ ]6 b2 `8 Z) e4 M            cout << '-';
2 ~! I8 J4 X. h2 F: `1 c8 [        for ( x = 0; x < 2 * y + 1; x++ )
: z8 {. C* q7 ?: A0 d            cout << '*';
3 e) `4 |3 B5 k7 f        for ( s = 0; s < n - y - 1; s ++ )
) E( _2 T4 V1 b5 T( r; f            cout << '-';8 W$ O/ g1 o5 r* [- F+ v; r
        cout << endl;3 r8 a8 d! Y' W3 S0 p8 @
    }; k) w" e3 H# L. Z
}
2 O, P' F2 c; i6 h5 `0 w. |- b( e
' r* C0 q' a) h( P2 I* r要打印整个图形:
6 S5 c/ C5 F' _* P( N# s, B$ z. A) o
. W" n7 ^8 X% }3 pvoid main()
9 j- G& B$ M/ t4 W) z{; R; Q) `" |2 i# [
    fun2(5);//绘制上半部分% H! u/ C* _% k
    fun3(5);//绘制下半部分% _  B( L3 a6 n4 Y  k1 S1 U
}
2 R  b' j3 Y' A+ H
9 a* \! i1 ~0 u0 y$ w
. D0 M$ e. _& a- K( h这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.* U% V7 C6 K$ I- ~" r4 R* x
</P><>
</P><>支持</P>
回复

使用道具 举报

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

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

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

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

蒙公网安备 15010502000194号

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

GMT+8, 2026-4-18 16:33 , Processed in 2.658409 second(s), 62 queries .

回顶部