QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:
0 l0 E9 y# X, q% |1:7 ~. R& }. w2 }3 N4 @
" {: P4 ~) l0 e' c
*; n, a3 p, D/ s, N; i
**
) d! H9 [4 v& t***/ q  d2 I5 Z" C( |- \& @* n( \9 j7 W; c
****
  @1 C- i& b% ]2 @) Y- s# ]*****
1 ]) i! U5 _+ }; m7 S: W  a$ K******
0 C  \/ Z: y$ s5 F$ A3 m% ]$ n
% G' c" j/ \- v3 l程序如下:% ~$ `$ j$ J/ U# v" x5 Y

$ N3 X! i5 v) \( @% |1 kvoid fun1(int n)2 I7 s: h; f+ |- B3 A* Z4 ~0 O
{
* r8 z, I. o, D. e    for ( int y=0; y<=n; y++ )% J9 Q$ W+ Y, N4 p+ }
    {) ^% Y3 C! h' W% O  E1 a  e5 [
        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关
% A- _) C& R# V7 z1 R8 q) u        {9 f: _3 z( ]& n9 u9 X$ D0 Q
            cout << '*';7 c* m2 Y1 E0 Z& {4 A1 l
        }
& m- o. Z) U: }4 K, [        cout << endl;//换行( m3 s( e6 l, ]& K) l; v* h5 m
    }+ ]+ }( g: p0 d4 E8 ~1 |8 s
}
4 Q% [; A. S' t8 a
) w/ C( p; h7 y2:
' ~( r7 a) b& ?1 m% R----*----3 E9 }! h, H/ @5 F5 z( S
---***---
2 {; w2 k* R* ~--*****--
1 Z5 A( L( A& k, m8 ]-*******-
* |6 X& [7 C* ~*********
: @6 f$ e9 k+ h) D+ ?6 r4 c0 ~/ D
: }# q8 d/ M) f! x4 q* _这组就复杂些了,每一行都分为3部分,应该分别打印。* X; {- h5 ?% k4 V  S
程序如下:
  D' y6 ?1 F) `. c$ A4 U
$ N& M, F: z* j+ E/ q0 p% Kvoid fun2(int n)3 y( F  i& X4 f
{
7 x1 A1 P0 v8 M5 K" `9 d    int s,x,y;
" g) p( Y4 O0 k) k    for ( y = 0; y<n; y++ )8 C' W7 u& E7 H, ?
    {& F5 z8 q9 `) ^
        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点
. m( X9 B2 v* X; e: z( f            cout << '-';
0 s. u. Q* \; X: k        for ( x = 0; x < 2 * y + 1; x++ )
" R0 l3 w" c: D/ H8 Y            cout << '*';5 Y+ ^$ r" u- ?- [
        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行! [0 k9 z, I: d
            cout << '-';  {5 ~) e- z2 \
        cout << endl;
; h. P- Q' ]. C* h8 i% S    }& E$ k2 o2 n# y
}
8 K7 U( K0 K! C- ^- b: y# s7 x/ J, X; I: B# G- c7 Z( ~
3:8 k9 {4 l' U1 ^: _9 F' U* k

3 E# N+ U) C4 s0 [+ ]+ [& Y----*----
% |. a% R! E. R---***---
, \- w, C$ X% w" \--*****--
$ d4 f0 C2 m6 `1 V/ s3 a-*******-
! n4 ]% F! j$ u% W*********
# D( G3 z: j+ d5 @) M9 b-*******-
8 N0 }0 D/ w. i- F. q--*****--
; n0 y8 s* Y$ W+ Z0 l& ?6 [4 J- c& ?---***---
- t/ Z" t! ~- v/ _! k- O6 ~+ G* S----*----. c7 I. v. F* Y" ]8 B: |2 w
$ F* l6 V0 J+ h
这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现
6 M9 m- I1 @  C+ j2 R: O打印下半部的程序:
. \9 R1 j7 f8 `void fun3( int n )2 F" K/ ]( T4 S6 D
{
& N1 i: N% k& K6 {* X2 f8 i8 _4 p$ J    int s,x,y;
( h1 M  }$ ~  t0 q: Q/ K    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了
8 r# `7 L* H' k! C' T7 X    for ( y = n - 2; y >= 0; y-- )  
) E* W- ^0 ~6 q: l    {
3 B. c: f  q0 l" X  P        //循环体没有改变6 s; e( f7 V. Q9 f7 n8 W9 V
        for ( s = 0; s < n - y - 1; s ++ )
/ w# D$ \3 s8 k/ U9 W            cout << '-';
3 d- P8 D, Q) M/ p1 Y4 P        for ( x = 0; x < 2 * y + 1; x++ )
8 h/ E" Q0 f% H+ F8 j            cout << '*';' N1 y. {( N8 j; i, p5 V5 A* j
        for ( s = 0; s < n - y - 1; s ++ ); G' ]2 d: S1 ~6 |1 m6 c0 ^
            cout << '-';# N6 l  W5 n3 h! H+ N+ a+ e  p" d
        cout << endl;/ m: U  j& u: t2 l: \8 T
    }0 f; z+ Z( J. w+ U. }
}. |$ e+ ~- ]6 e6 Z

, o. Z3 \# h6 T/ ^1 U6 E4 i: }要打印整个图形:
* W! v: M0 W& f, A+ A! I& a
, D/ e9 G, B8 O5 C$ x. _void main()2 T4 `5 m$ h" \2 g- U1 E
{
# C( i8 j# T0 ^' }& ]! Q7 U" s    fun2(5);//绘制上半部分
5 Q1 Z! W+ E) A# r2 h    fun3(5);//绘制下半部分
1 m# N8 O* e$ @. O$ i6 E5 g}
( F) O  S4 E' D. M) ~/ ^6 O* ~$ T
2 `. s% K" r) u* C6 P0 u
0 z! t2 W; {" j* h这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.9 }% L+ i: g+ T0 Z+ B- {9 z* ^6 t
</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 06:24 , Processed in 0.320916 second(s), 62 queries .

回顶部