QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:: y; Q+ |1 }7 |- o% o5 ?# Y+ @
1:  u( k3 i2 \5 m6 g$ l

/ P% p7 d' o# s5 i5 f3 ?; s*
7 U! [% Q. i: o8 n2 M) J- v( \**# U% ~4 g/ u$ y$ }, q
***% f+ o3 m" d$ D6 i8 y( b! x
****0 x7 k4 \, R. D2 k
*****
. J& G( X/ y- A) w* i******
8 {# }$ Z9 z+ i) w2 x1 u  F* h. K- p. N- K. G/ V3 Z9 V
程序如下:
* x! }! M4 |1 F  Y9 s
( g6 A- h( ~$ q0 ?+ W5 W! h4 ?' svoid fun1(int n); c. Z3 L& v* ?5 l5 V6 t
{4 D/ Y% a+ a% W
    for ( int y=0; y<=n; y++ ), E  {6 b+ v9 e$ A0 p
    {
& _. G8 P. _# H( _8 }9 ^3 L1 T) L        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关0 I9 E: {1 y: O
        {
- q' D  k6 U: m7 _+ r: |( Y            cout << '*';0 C' i/ W9 E- ~$ |- a
        }" k1 o) O4 L6 _# N
        cout << endl;//换行3 W2 z" Y: G/ K6 @$ ~
    }1 A7 {! e) w( B0 j
}
$ _) j; I, c& x7 X* H
$ D  u% m" S" M$ k2:
' {( ?) @; d( f+ Q" p) R----*----
% A1 Y0 m% x2 g1 U1 `. r- n- i---***---) r+ Z7 ?. @8 V& Q( w) Y0 S
--*****--  G$ t2 U) X# ?1 J+ A4 q
-*******-4 F3 ]& J% Z5 n5 v3 p
*********
  z$ q; f# [+ E/ x; {/ Z( d: W6 [; y8 m/ k+ r. X: C
这组就复杂些了,每一行都分为3部分,应该分别打印。
4 e7 Y1 u2 p1 ?7 p; g  ~程序如下:
) `, j; Z& m$ F) g$ R. t: ^$ k, d: E) J3 r+ R: K; q- I
void fun2(int n)
! [7 n2 Q% o+ [0 Y$ {! d. l{+ E& |2 M6 s0 B* c
    int s,x,y;
, b: Z: P1 y, Z9 u: Z1 P; F    for ( y = 0; y<n; y++ )
% l% h4 i9 y8 O- U7 l! M- a    {
) Q  R2 R# H& A1 l2 V        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点& q- }: P. ^+ o% F( S: f
            cout << '-';
- C4 _! K, O/ X, q4 x: a& Q        for ( x = 0; x < 2 * y + 1; x++ )
. }  d9 }5 g) Z9 K  {2 H: `            cout << '*';  l+ \& k3 {* v6 i8 h
        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行
. ]1 N# ]1 ]9 P) i$ ^            cout << '-';# R, m2 f( |' g( H4 m
        cout << endl;
2 p4 [6 c# N: [# d- A  X    }
, `& m/ ^2 |: u# H  ~}1 _/ n) v& g- K" \* S% v
; m9 s) E- u- P! R5 o
3:6 r7 O7 T3 b% q5 \- `. W5 N

& d: ^7 ]3 K1 D% c----*----" r! S" A4 ^+ D: _  H" w
---***---
4 T' L7 p1 X% l7 `; L( t# E0 c" J--*****--
3 [! Z9 D. W4 i! l- d1 H9 D2 l-*******-
: d9 ]1 F+ C* w* C& E& t4 [4 W, h*********
5 D# z: d, R. P6 k. T) f3 @-*******-. P1 h; U/ Y7 X( [- J& `
--*****--* z) F0 H4 d2 I9 \
---***---6 E1 d9 n5 ?3 m9 A" N
----*----
5 }; x4 S& j4 R) T9 j4 n  @: @& Q7 |" i- {4 R  x( Q0 r
这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现
& m# Z! M" s+ _0 V打印下半部的程序:
0 i. R8 P. R% W  S* j. ~; D, @void fun3( int n )! ]: O; h" H2 R1 W, d
{8 d0 s# r9 \- U, F8 ]' W
    int s,x,y;3 U0 ^+ \; B3 h( x' v
    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了
6 d0 ~% \. a: H) {; [; G3 |0 h    for ( y = n - 2; y >= 0; y-- )  5 ^( {8 ]  [/ B" i7 j+ S7 v8 z; M
    {" C! N9 {8 w3 a& k) ^1 l" w) c
        //循环体没有改变  C4 M0 K# J* R( P
        for ( s = 0; s < n - y - 1; s ++ )
# ~, B2 q' e4 Z5 D5 E( [% y            cout << '-';/ n! z) \& B/ `: b. z
        for ( x = 0; x < 2 * y + 1; x++ ); p( B& a  Z- h( ^9 _+ j- ^: t
            cout << '*';" g& _  J0 W+ X& x5 ^2 f
        for ( s = 0; s < n - y - 1; s ++ )2 Z" k/ b6 f. p! D$ m2 M! \, H, @0 I
            cout << '-';- R- l. A/ d8 Q) w) c
        cout << endl;" r6 S+ D' C  |+ k5 x" ~  b
    }
9 G6 m: q5 K  w. q, L}) q* {1 @- Q5 H/ R0 @
' m# f# b' e8 Q8 q- _" ?4 r
要打印整个图形:6 V% u+ e/ r+ a1 L
6 P' \, Q/ G5 u
void main()
0 b- s: ^- N/ e" ]2 O" e{
. p& k+ u+ j8 V5 T7 V. X' r    fun2(5);//绘制上半部分
5 [$ [. X9 D; h( l, w6 g, i$ t$ ^    fun3(5);//绘制下半部分
; U2 l; U6 N5 V, q}
9 L1 c5 f5 a6 U& I: z4 |. S: r+ @

8 V  c) o8 o+ s3 U+ `这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.* O6 }7 p: U! j, G
</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-1 21:26 , Processed in 0.399332 second(s), 62 queries .

回顶部