QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |正序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:
2 H$ x4 J: Q! q1 s6 T2 d1:  P. @+ A4 [" W; d4 e

$ n* }3 a( {* s, T7 }*
+ s) V4 b- }2 O; G**
: K$ W5 a, c: g4 p& G***
: Y2 f, p- _! d0 h: q****- `  t6 v3 S) U5 U# U! j. d
*****! U1 [% [. Z7 J# I$ ?& \
******* U* e# A7 ?5 g( J7 [% G& f8 J
! ~- c  D# o1 P2 d2 t: \" @
程序如下:/ S. Y2 Z: I/ f8 N3 N: t

7 @! D' ^* [8 L& Avoid fun1(int n)
! s" r$ j; O  V: ~- l; g& |5 i; ]{. K) h3 m, M* S" Z
    for ( int y=0; y<=n; y++ )
6 P0 f% e/ s; [) t0 i5 s$ w: @    {$ ^: X& W# c# G1 ?, n
        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关5 R2 g  {6 q- s+ [
        {5 {7 k: {! b3 p% g6 \+ A
            cout << '*';
8 \$ d# M: ^4 y5 H        }
4 D6 l/ H5 L8 D% m+ |        cout << endl;//换行
9 e$ s) K+ I- l% I; e; M    }
" D, X# M( k- Y5 O& j; E- p}
0 J- k& _9 C; e4 g$ ]5 y6 i6 d* |) }8 e5 n  z' K4 ~
2:
; s3 K9 d; z' R& Z& m/ z----*----
4 q6 `0 v7 a' a$ |---***---$ w2 M1 Q6 ^' Z' q; W( [
--*****--
$ s! W* {3 c  w) g% r# [$ Q-*******-
+ _& _& G4 \, I  i. ]7 y*********
0 E  y' E# N6 l" o: R! d) ~3 L, n% T1 e  f4 t1 c
这组就复杂些了,每一行都分为3部分,应该分别打印。
/ z1 c) c- U  Z- f2 D% n3 U程序如下:- r9 g. G, S4 R6 L2 Y  |

! H5 c' @! @! {9 R; ?/ a- U" ovoid fun2(int n)
9 f- ~/ b  c. _$ H- U9 a( t{7 Q( z1 y* a" m6 j
    int s,x,y;
0 y$ u1 p, N/ D- l9 D    for ( y = 0; y<n; y++ ). ?' [3 f5 S5 n+ {6 R
    {: c% }4 G$ X3 P5 E5 B5 {2 Z9 x7 P
        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点
) h5 U- g1 q6 c0 x- `            cout << '-';/ l; r. d5 v$ t) R# z- {2 `( `, p
        for ( x = 0; x < 2 * y + 1; x++ )* ^) ~. @" ~/ t. {% k0 m
            cout << '*';
1 ~9 F( a1 a, }# D9 g4 _        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行
; Q3 @! I8 P  b, j            cout << '-';' W5 d$ e# T/ g: }' ^' }/ w+ h3 P
        cout << endl;
: c# S" P. ]/ a5 x6 {7 p" g5 G# U    }
% F% |! A2 f6 h  f}6 k8 K( Z8 t" b6 Y6 j
. R% Q: y& X; t- q: T. K
3:' n' |5 y1 E7 ^+ s: T
) H, C7 f6 p4 \1 a7 E
----*----
- r+ W" J% R- V& r---***---9 |6 c. Z- n9 ^( Q! J
--*****--/ f' n  ^* r; A  a5 A
-*******-7 C4 u  \& B& V5 L9 s0 k. m  d
*********
2 O, }, t3 @% t5 K4 l. X" h-*******-
! Y5 I& X+ N. e8 D. M--*****--" T$ D1 q" ^; W8 L3 I" C
---***---
8 `1 U  _0 H% i" r: O, q* k. x----*----
; f  I' @' x1 O2 e
( m7 k9 Z; h3 h7 c9 k) u这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现6 y/ I7 w8 m1 r. y( e0 b* G7 [2 x
打印下半部的程序:
/ q( q& P- `9 a; gvoid fun3( int n )  a  z) S. v: b; m0 A
{
, T; j: z& W) j4 N6 y1 a- _" I" g    int s,x,y;) T& P* R2 p2 h* E& I
    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了
$ t- T4 G' N1 g0 c( Q    for ( y = n - 2; y >= 0; y-- )  * S& f1 R' O4 [, h6 q0 h
    {! N. w3 V) J4 i7 b+ C
        //循环体没有改变
5 s2 i  T( b; D        for ( s = 0; s < n - y - 1; s ++ )
  C* q' \6 g9 w3 \            cout << '-';
' I* L$ r" [& c+ V: n4 E& `0 ^        for ( x = 0; x < 2 * y + 1; x++ )
: M7 c- V( k4 O, t/ w/ n            cout << '*';/ a4 ?, ~4 G- z4 |' x
        for ( s = 0; s < n - y - 1; s ++ )
( k+ t' m& x( p            cout << '-';- e* `2 K$ {4 }0 @$ z) N* i
        cout << endl;
" `  B$ V. R5 ?/ ~* O: o& W6 Q2 e5 a6 t    }
2 R! {1 \+ X0 h; ~6 [( i$ ~$ u7 n}3 t; I  `4 s. K' ^/ U

  s* W: i5 S4 k; l要打印整个图形:' ~5 ]! T2 ]- ]  V  |9 ~

$ }. n  u! l2 w. ~5 T  lvoid main()  O: [7 G8 W% l! l
{' @5 s5 \( x6 O9 E; T# d8 S
    fun2(5);//绘制上半部分% i* P: [  g' I4 Y
    fun3(5);//绘制下半部分
1 d; M5 g+ N5 d5 ^! ^4 o% J}0 A5 z. i5 S1 R2 S

$ d4 b. v5 r" @# Y: B1 M' q: K, M  U0 x5 D2 r' B1 o# l1 {  k
这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.6 z. ]6 M( y/ b6 G9 F+ E
</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 05:19 , Processed in 0.458982 second(s), 63 queries .

回顶部