QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |正序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:
, D# ]" R. K# z7 c+ j1:8 I* p9 \$ }, q  p& g( p* u; v
! Y7 K; j  ^8 j; I1 X
*
5 E( M7 w  w7 W. E7 s  m' |**
: |( l; E0 T2 Y! Q- t# V***% n) Q" }7 S1 A) Z4 |. u( O5 v
****
5 s* B4 ~+ X; c& \8 {: r*****
% t( o( |# I' \8 e' y******
  {/ c5 k7 v+ S1 {
8 o9 K! D' Q, i) S4 k程序如下:* M$ H. j$ s3 G

1 K" B( k) |1 I% V. Q' a* f: Pvoid fun1(int n); Z9 Q: o" s5 Y5 f
{
4 E' M7 V; l' X4 m# k& z# X    for ( int y=0; y<=n; y++ )/ E! w9 y6 J  s# v' s4 s
    {
4 p( \( |( S; J2 }2 w3 A- e  c        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关
+ Z1 b( i2 @: e* K3 ]+ d; u0 n" f        {6 [) i# {* j" {& h& G
            cout << '*';
( U# E/ D- N* z/ }! [% N        }3 c4 d+ Y4 N% s# \/ H
        cout << endl;//换行" p. w0 a+ Y- Y2 p! l. C
    }# I0 b5 m4 _& r2 S
}7 m$ a" q. c+ w7 Y4 S4 m" c

7 Y3 K' f" ]- Y. ~1 u) q2:7 B) t# [: O# B8 B$ ~* E
----*----
2 W' f: E  Y: B2 p1 o. d& G! z---***---: [/ E/ N( G9 E% X+ f' R  w. @- q
--*****--
& q  b2 n2 ^9 v+ v3 q. i0 }-*******-/ i7 _. x% Y) e* ?
*********
( ^/ k0 {5 I2 K/ @0 r! b3 R" y: C$ ^# x" W
这组就复杂些了,每一行都分为3部分,应该分别打印。
8 ^; V4 l$ J) ?4 ?程序如下:
1 \5 s9 ^4 h/ o2 p; O) Y" t
$ J$ M1 g2 }1 Mvoid fun2(int n)& Q  [. _% e! j, ^8 h( {
{) N% D7 O2 i7 g4 `& g9 i
    int s,x,y;
7 ^6 V2 H% X+ K. s( Q" p+ ]    for ( y = 0; y<n; y++ )
2 u( l- T9 q. m    {, D( `2 U2 b- `/ H, M: l" _2 d* ?5 s
        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点
# n9 ]7 \' }! R% c            cout << '-';6 y8 }4 o% t% }% t3 [5 N3 W
        for ( x = 0; x < 2 * y + 1; x++ )
) M  P0 m: M. f/ T- i) \! L, o            cout << '*';
" Z& N9 I' p% e0 Y  ^1 J2 Y        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行
7 k! {4 I5 L+ F( v  U% }            cout << '-';
9 E8 T! A) @% F1 d" Y6 Y) _- ^* T        cout << endl;7 l5 v* @# n+ y( s; a% o0 T
    }7 [# Q$ i; J3 l/ @
}; I9 c$ a7 G( @. U4 C
# J1 ?& t; i! S7 F2 [
3:
: u: l5 M. y1 X5 v8 Y6 d- |
7 G  R( P' }& H; u! @# N( y: d----*----
$ M7 I5 Z3 J- I+ `---***---
" y2 u4 n7 C  y. O* h1 @* j--*****--9 C; f$ d( N0 c
-*******-
$ }1 {' P  ~: h1 F********** S+ \/ o) R9 Q7 q! X! a
-*******-
# d0 a7 E6 |4 L( i--*****--: n3 D1 N6 p3 X1 p% k; h
---***---$ t& F$ e  R; s) f1 U/ Z. {
----*----
- y- g; o( U6 \% P5 i% S5 \: n: \. o  a" d- o6 o
这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现: @8 m% N1 a- A% u
打印下半部的程序:6 I& _& ]$ _) R8 z# a" ^
void fun3( int n )1 |* m5 c, L( `1 k, s4 T
{
4 i# w2 K$ \$ A0 I" _. [+ p    int s,x,y;; z, V$ r% U1 E& B% E5 N( O& l1 \
    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了
& D$ E1 b2 Y! D; x) S    for ( y = n - 2; y >= 0; y-- )  
" A# o% ^. a# {" c- g% H    {  n" f5 M; }0 f8 _, f; y
        //循环体没有改变
% H; l$ ~/ L  ?( O9 r. {- M7 A        for ( s = 0; s < n - y - 1; s ++ )
7 D1 l2 A  x5 {2 t( X; o2 ]3 H            cout << '-';
7 J4 @' T$ e( B$ U        for ( x = 0; x < 2 * y + 1; x++ )9 h' A& X2 x  @6 D! H1 J$ v
            cout << '*';. L+ e4 D2 l: U4 J
        for ( s = 0; s < n - y - 1; s ++ )+ S. y: n* j! T% `
            cout << '-';
$ O' k3 t9 x% @6 `        cout << endl;
1 O. c6 S9 g1 ?  J    }  I- n4 p3 r. w$ T- \; `
}+ r' v1 U% i( T
( L! u/ q7 t* L9 U, l
要打印整个图形:
$ h% _9 K/ ~* x; |& |
1 F6 A2 U: |1 W3 |+ [) }void main()
) D) D: `* R% Q) E( D! W/ c2 I{
  F$ `7 j3 L7 i( t1 E: p3 N( S    fun2(5);//绘制上半部分
% x: B& N( p" R7 Z3 r" g6 U    fun3(5);//绘制下半部分
: U) |# r% j) z) O/ R}
( f) x2 v* @" ?0 R( I( T- l( r2 A! g9 |

, L' I& j& U% J1 F& o这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.# r7 g& F; M: h$ p
</P><>
</P><>支持</P>
回复

使用道具 举报

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

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

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

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

蒙公网安备 15010502000194号

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

GMT+8, 2026-6-11 12:23 , Processed in 0.414043 second(s), 63 queries .

回顶部