QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:
6 t6 J+ H8 L6 q2 Z1:
! M1 r' d) @( X# ^2 M$ i  _% |2 Q+ I6 {6 H5 F& a
*+ U  N0 Z) L9 V
**5 x  Y/ y$ k1 o& u8 T. n" Z
***
) q: U( E1 \* v****4 p- l3 q9 c7 i0 F# F. J
*****9 l7 a% v% \# b( D& F) p* t! d" B
******
& z1 ~  s" b7 W* g& A9 a& n
, F7 [* M8 V- ]! ?5 f3 I# K程序如下:
% j0 X' |" N2 t& B- A  }
' x- E7 Y3 E2 Bvoid fun1(int n)- c7 j- g) Q3 p4 }* r( d4 }
{1 P+ R2 u9 B: s) F. i: w1 t( p
    for ( int y=0; y<=n; y++ )
: X( v* T) k0 R  s  N7 a8 y    {8 X5 X. d& ~/ a* `
        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关& L% Z7 L7 F. r4 r
        {
, b/ L7 ]: b5 V: q9 z- r            cout << '*';" ]1 l7 E3 _6 }4 Z* }
        }
- G# L3 H, d2 \3 K        cout << endl;//换行8 y7 X/ t0 L3 E9 Y5 t
    }2 P- ~* R4 A0 Y7 x( x+ p$ q
}
1 e, i/ D6 f8 R1 o$ y* U3 {/ }
) w$ a7 \. c  T7 ?4 I1 A2:
, T$ t7 }. N1 I/ B& I4 z----*----5 ]! q" B; y! A% m6 G5 q
---***---
% g9 e: C4 T' @* Y, E--*****--
2 g  M" Z8 V8 P, A-*******-8 O  B( w" j2 f  K; s# ]! a4 g% M
*********! A( T8 o/ M- j0 d/ P$ B7 e" x8 s
& F- L6 D5 r- `& |0 O$ v3 T
这组就复杂些了,每一行都分为3部分,应该分别打印。. \1 _! X, u; W1 J
程序如下:2 p( }5 f. M  \7 G% f8 c2 m9 b
4 o1 {' d# x, h1 k
void fun2(int n); T, @' {5 j- s! f6 Y+ [2 o+ r2 N  f
{
. ~- `( [1 y' l# _    int s,x,y;- g5 ^/ B3 ~# V* }* r$ @
    for ( y = 0; y<n; y++ )
; h4 M2 U! P6 y- R    {+ d+ v2 x* s, ~5 s# f+ n; o
        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点5 X) T( s+ ]9 X8 Z
            cout << '-';# n- m0 e* P5 c6 }' G* A) ?0 c
        for ( x = 0; x < 2 * y + 1; x++ ): F; b( L( W# T
            cout << '*';
8 P" d) g8 U' _! S/ B5 b% \5 P        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行
1 W* I, Q/ G' S% n+ h0 N            cout << '-';
9 y3 A  E( C  _7 T! y2 ^- G* q; \        cout << endl;0 o8 H! r1 i/ N
    }4 ^) q2 y- d  S2 c. i6 o. [
}1 y5 M) l% w- _8 M" @
6 U3 M  k$ I( f, x1 `+ s1 Y( |
3:
& J; L, j- C1 G1 T3 N- J4 P5 d+ I
& Y$ ?4 P5 d+ i: e----*----
$ v8 _3 C  k! ?$ l" ^$ r---***---
5 L  M6 t& ~1 d8 A; Z--*****--
5 m7 e; z5 {0 e3 z. b1 ?, M2 W, [-*******-( f$ n; n* C% l) C  j+ q
*********1 t: v, @2 J0 E' Y
-*******-$ w: o6 g0 B; s) T7 R" W# }0 h
--*****--* }& x/ w+ ~! }/ [- k
---***---4 \( j1 m! K3 S$ V
----*----$ j! Z$ G8 d% j6 V7 a

+ n, r6 R( z5 x这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现7 n/ S, @% f' I" V  K9 z
打印下半部的程序:
- R9 y) `& C# c& X8 G& @8 D, Fvoid fun3( int n ). T! x& B  w' t( G* F1 g- b
{
+ L7 r, e6 M) z  H    int s,x,y;
0 c3 e: F3 G0 c    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了8 E  e6 ^% c$ C* ^( t! K
    for ( y = n - 2; y >= 0; y-- )  
) q6 L. P0 n7 U! C& X% j* H, E6 D3 m    {
* D; h: B* I& p- T# \        //循环体没有改变
: [* |- I% T) u% v0 b4 r7 }6 r' A        for ( s = 0; s < n - y - 1; s ++ )1 z9 p1 _- _9 P) r) D
            cout << '-';
2 a5 R# M  U. b9 @/ f5 O. D        for ( x = 0; x < 2 * y + 1; x++ )
" Y5 P0 l& L. \7 y. R            cout << '*';' t' f2 `5 }. X$ a' ?
        for ( s = 0; s < n - y - 1; s ++ )/ n+ B- Q1 F2 d0 `
            cout << '-';* N3 D3 v- i- b" i; X) ~1 ?6 N
        cout << endl;/ J5 S3 |  {  z0 z! s- b
    }
% K6 o- C. ?) p; N2 B}
. ^$ v3 O7 A- ^( P- B) g: p
  E' [9 ^& {1 D; B要打印整个图形:. I2 j5 p& J/ C( N
  u) ]9 \/ m% z% K9 k; m
void main()
4 Q- H  K: p6 ~) B{, g- ?: y* U$ Q) e5 R
    fun2(5);//绘制上半部分! a' |( T: V6 j) Q7 C' Q' b
    fun3(5);//绘制下半部分/ v/ `! o7 Q$ {+ I
}
# }! l- }9 g" O& {! f2 }9 P4 y, e$ t7 i% _

& H- h" S. g+ C3 t8 i6 W; b这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
" c" ~# j; t5 z5 O  }" i</P><>
</P><>支持</P>
回复

使用道具 举报

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

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

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

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

蒙公网安备 15010502000194号

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

GMT+8, 2025-12-29 03:18 , Processed in 0.531714 second(s), 63 queries .

回顶部