QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:/ k/ a1 `7 e) ?2 h
1:, _. |) @2 a4 g2 ^* e, p8 }

+ I% c1 I2 W& C*. ?6 E  m" q5 ?
**" `  }1 J3 ^. |% Q7 \" F3 v, j9 S
***
/ \  V1 q9 a" S****' j! O0 }$ W& z! E% G/ B
****** z5 X+ Q3 I, P; Y, W7 x4 \$ O' j6 S
******
$ @1 a: I( c7 J0 _& s! F
3 Q/ D/ j9 m* v3 ^% r- |% Z程序如下:5 w2 j0 ^9 D) {. U

: K. [1 W8 u8 d  S+ U% nvoid fun1(int n)+ L8 A9 L' t$ V3 N$ |0 C% U" T6 D6 H
{
2 ?3 R) A* E+ m0 u; ]. j    for ( int y=0; y<=n; y++ )
+ w! x' f$ C& i2 c2 y" \; M    {
  y8 i. ~, a* ?9 f2 w) K, x        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关- |- I, }/ V* T  x1 @$ \
        {4 v. I8 w# [+ q) ~. U- a. i: f
            cout << '*';8 W/ i$ b, [% Q# W! L
        }
0 w' t( H$ Y9 [+ f- d. U2 h) S9 i        cout << endl;//换行- N( P. k+ J' Y- u: f: Y2 p
    }
( K" l6 \, t" Z: b6 M}
$ ]7 J/ u! {( l/ r7 R$ [# p9 a  `
2:
5 m: `2 i0 @9 [* v----*----
. ]; n2 k' U9 l---***---, l" y& |0 Z; q0 Q/ a
--*****--
, V% s% m/ Q# [! I( N7 O-*******-" R* C# k' E; q% I) s
********** H$ h: ?" y9 c6 V% o
* p% u% H8 H/ R! O1 H3 w) a+ h* c
这组就复杂些了,每一行都分为3部分,应该分别打印。( T4 O6 Q0 G! V, p% a* y
程序如下:
; `6 u' A6 h. s3 X0 |
3 X3 }+ |- j% r9 p' `1 q: vvoid fun2(int n)
7 u/ o! {& P# T! t" ?7 v) O{
" B/ U- @! {2 ~9 X# w5 o1 [    int s,x,y;6 b: h% r# c! Y$ S- H$ l
    for ( y = 0; y<n; y++ )* L3 E4 ?0 y: u, B5 g
    {; [4 W6 @8 J! Z$ S$ @
        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点
/ D! d/ L  \/ ]4 ]2 _5 t            cout << '-';
9 g5 ^5 q" D* w  C) k. `/ H        for ( x = 0; x < 2 * y + 1; x++ ), u* Y/ `% e. c$ S+ q9 |( v8 X
            cout << '*';
) h4 ?* [& m7 u7 n3 O  B6 |# m        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行$ u* S! b! |  }* ]0 w+ m
            cout << '-';, D* {6 S4 u3 p( L# y3 b0 d" ?% P
        cout << endl;
7 k7 Q1 Y/ A2 G5 L    }: m7 h  {7 N1 V' ?$ j
}& }" s( `6 W9 O) Q9 V
/ |( A. R2 u0 I& q! P$ [/ J
3:
# |2 q1 _, K$ `' w1 ~* X5 b
" ]% q7 W) D# p----*----
! U+ m# K5 _3 s6 d8 x% ]---***---) T% j9 N+ c3 h& W# H
--*****--* ~. G. @. h: `. L- c+ i
-*******-* g( ?+ G4 m* F) C* J
*********
0 L+ D3 W) k3 m5 g4 Q5 _-*******-8 `  s3 Q7 W* d& g9 ~# @$ V# G
--*****--
# C, A6 D. O8 r1 c1 `0 _---***---2 i6 X. R- X5 D" |
----*----1 Y  A6 m  |4 L" U) u

3 G! _2 h/ H' d( P这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现! @" p6 T# e  P/ S
打印下半部的程序:+ y  `( U  |' ^5 r( a' p; B
void fun3( int n )& n: L7 P" j$ e0 W3 f7 x. s) ]
{7 |8 m( o' a/ k9 O6 B4 I3 S% q0 y
    int s,x,y;3 T! B5 w0 A# `2 A
    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了
! x: v5 T4 p2 n6 ?0 l    for ( y = n - 2; y >= 0; y-- )  # m+ L0 R3 w# n5 J* j! p9 W0 `2 D
    {
6 n5 Q8 ^0 N! Q! B2 x% c        //循环体没有改变
$ a( w( t! L/ W+ \5 Z, U        for ( s = 0; s < n - y - 1; s ++ )
* Z* s8 E; y& F( w: I            cout << '-';
# G+ ]3 T# \4 u5 x! u        for ( x = 0; x < 2 * y + 1; x++ )
7 k6 V6 Z0 u/ M: A3 x            cout << '*';
- q( F1 ~+ \+ g* `. n        for ( s = 0; s < n - y - 1; s ++ )
/ i. K5 q5 S% y: o' S) }% t. D2 k            cout << '-';
' u8 J4 o9 u6 H+ ?. `  k        cout << endl;
8 a* n- R, t5 `3 u; r2 b8 P7 E3 T    }
: k; o5 h! i4 b0 ~}
' h4 K% }8 m. I( W1 @
" Y4 ^0 z) @# J6 x* s要打印整个图形:
5 H( s1 T" p) [- c" t+ m, y9 o- y( n( r$ j8 u+ ^
void main()
4 i+ r" }. C+ F* H% e/ u2 {{8 m& `7 g* j6 ]' z4 y' H+ U
    fun2(5);//绘制上半部分7 `+ `0 |, Y3 v  G
    fun3(5);//绘制下半部分3 W  c+ ]1 }2 y
}( i: U' R; v$ l) @7 C/ `9 p
/ l) @/ l* N9 N: [7 x1 y% t

1 P$ b* S+ F4 |" K: t% S这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.+ f! u" Z% Z' W9 ?% `+ _
</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-2 18:45 , Processed in 0.378410 second(s), 63 queries .

回顶部