QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:
5 n1 Q; L+ f! k6 ]# B1 E. l1 K1:5 X. p0 {6 L. }& Y" m

% q! b2 G6 _* }/ u! |. w*" [+ b" D! n' ?0 k' t
**
+ t1 ]+ b3 `0 t5 Q! G. f***
2 |  \0 C% R# E****
' s: A$ k0 S, I+ s# w3 n3 J*****
, d# Q1 i" B1 ?6 h! y- u******' z- y1 s; J" [0 @

0 f# B/ N3 `% C' x) l& l程序如下:
5 m- z! b! m+ l# V9 Q! D2 D; l6 s9 M. I3 G3 U  J0 Z  S. w
void fun1(int n)2 I& R& l* d- ~! G" |' f7 E# [
{
9 m5 _6 [, T7 |- W9 }    for ( int y=0; y<=n; y++ )* {& R% s# `5 s& L
    {& H: l" U5 b, S3 Z# m& l# S
        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关9 @  a& b6 ~0 Y. D; Q- s4 `) ~* m  `8 m
        {( w2 U2 T/ J- X
            cout << '*';8 i$ n# }9 V" M: J7 W1 M) ?$ m- u
        }
1 v) {6 u2 x6 r9 `        cout << endl;//换行7 ?* J+ i  ?2 m- `8 p7 D  g. B) P- c, O$ ^
    }
4 K0 X5 }1 n4 [% W% {/ w# D7 @}$ X+ g4 ^& t+ b" Z
' {. J( V6 A9 I+ I  q6 \6 Y
2:& f# T! l# N" z5 B$ x
----*----
( _6 l8 c  ^7 X& Z5 Z/ r. _, t---***---. F# {' x% X% Z
--*****--
" K' s) I& B( f% ~-*******-; O' A, m% X! A# z1 i& {9 o+ r
*********
; S; I  L1 \/ k6 U$ Z
# _; G$ r3 v/ ?' ]0 r& f这组就复杂些了,每一行都分为3部分,应该分别打印。) K7 V5 a1 u# `+ q9 q) [) _- v3 Q1 [
程序如下:
0 n. U2 n9 ?: Z, ^8 u# E
& k) n. a  u3 F* g, gvoid fun2(int n)5 W: ]* `$ v) T3 F' L& |/ H
{( \4 d. A7 b$ Z+ Q. ~, B3 w  M
    int s,x,y;
$ R4 o* @; g4 l( c7 `& v! D" Q: N+ X    for ( y = 0; y<n; y++ )
4 h9 r0 E  Z2 Q4 k  F: U5 U    {+ e% M: k; Z2 M* B
        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点
8 e5 G* Y- y4 h* _# W2 t6 ?            cout << '-';* M( z* u& ]* W. L0 K
        for ( x = 0; x < 2 * y + 1; x++ )$ K" r+ ]/ ^1 G- P
            cout << '*';
8 _, @8 P5 a+ _1 U: M. _        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行
% T) L& ~5 m: D: |4 u! Y0 s) h            cout << '-';
9 ~1 }, z/ T+ u. n1 }* U- x; q4 }        cout << endl;
1 |; z$ h$ W( V3 Q    }
3 N/ E" D! W  j. k3 w2 _. K}
( u, \, ~& E  W+ C  R' N! k' j. a3 C% w9 @& L. q. f$ \" B$ t
3:2 \2 r4 k' b; h- {" ~, ]& t( Y0 L
. y, c0 j" R3 H" H% [
----*----
: u; y' g5 W, A+ l9 x- A---***---- b/ t0 N! J" B
--*****--
: Z1 t# Z7 B# N! V. P- q! q-*******-
2 ^1 n1 P6 Y! `% P" V*********
1 H, S5 G! Z& @1 q& N' {0 @: P-*******-
% }' {  I( i% ]( M! W--*****--
* h5 {& D7 L/ ~" U9 `% c---***---  _2 ]& f% G+ [
----*----0 |4 ?- r+ f# s# u2 K
) a& a* b9 ^' N" y
这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现9 o% d3 d0 v5 B( m5 W& m) r
打印下半部的程序:
5 d0 e  p( Z6 g6 i9 wvoid fun3( int n )
/ U. x4 `. l) ^2 |& R# p{
1 r# t0 L1 w9 S: }0 m' {    int s,x,y;
: F7 h: m9 q/ V3 s5 X    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了# n/ W3 m1 e0 o( `, L2 U0 w8 {
    for ( y = n - 2; y >= 0; y-- )  5 ~0 S/ A  ]0 z1 C  B  `6 q. s6 s
    {2 ~; o" X. x* v  O! f: L% |4 y
        //循环体没有改变
/ F; o/ o3 m+ L6 i# ?5 T        for ( s = 0; s < n - y - 1; s ++ )
7 l* |9 X2 r. R# i7 C            cout << '-';
. k  {# c/ `4 ^9 u        for ( x = 0; x < 2 * y + 1; x++ )8 r* G7 m' u9 x( d9 I
            cout << '*';+ @6 K. ]1 k) e7 q9 W8 X# [2 l. ?
        for ( s = 0; s < n - y - 1; s ++ )
* |9 g0 m) Q& M. r. e: H            cout << '-';6 ?) W; {& ]4 z+ |
        cout << endl;
* [# n# h% B- C! d    }( H7 ?0 l. Y1 @  U( u
}
4 o5 i9 a5 _; O" w. j* u
7 u2 S+ H1 i( E要打印整个图形:
: u) X7 s- C: o3 n* L# Q; T1 T  a0 ?) I; T
void main()
% q- R# v, r# o; p{
4 `- o: e/ [$ y+ a0 r3 b    fun2(5);//绘制上半部分" t5 m) b" z( o0 @9 Q
    fun3(5);//绘制下半部分
7 _  H+ Y2 z- f$ A+ k- C8 \& Y% |}, u- F6 N9 I. Q; p. y# ]
5 D& V! h3 G4 K8 T) E# q

3 ], X  d3 Q/ n  H. e这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
! A7 {- |7 \3 Q- h</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-10 20:23 , Processed in 0.425557 second(s), 63 queries .

回顶部