QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:5 a8 [" J+ I* j
1:& j& }0 B! K# c$ o! C- I$ e) j& B6 M$ O# @
" t; _) j# f2 E2 d0 g2 f% N2 Y
*- F& K6 X0 Q  [. J
**. @8 g5 e# h3 `- s
***
' p- @* P5 S. ?- I****5 w, l+ H7 \. W. J- s! M
*****# P! Q" o8 r- A
******
* e% Z9 n/ v1 D* T( V9 g4 t9 O0 m1 p9 T/ D- T/ X
程序如下:
% d  I) G+ U8 M4 V6 \' u* R0 ?- E
$ A: h) E$ n0 Z+ l7 Nvoid fun1(int n)9 c9 G8 V. A3 d
{9 x) S& O3 \/ ]) n0 P
    for ( int y=0; y<=n; y++ )
1 N) Y; C3 G2 q8 J1 s/ @, U    {
  s( ?% n7 s  h+ k2 A6 y6 S        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关2 B- z! |: E7 w# V( x  m
        {
' O' U0 J3 |* ]+ k            cout << '*';
6 ?8 A+ p8 |, @+ D: V8 v9 f4 A        }
" m4 D7 x0 R# l+ |        cout << endl;//换行4 Z0 z# y. s- I" s
    }6 L. ^) v5 w6 o
}
, d( V0 I5 h+ V' r
9 N$ I+ R( a/ `7 ~, @: r; w2:
) @! |& H! L1 C8 t9 G----*----
: F" {% _8 a9 {9 U3 b2 U# C# l. F---***---' y: ~4 c) M& \, M/ ]; |
--*****--0 ^) o+ s- q5 M
-*******-* V' ~( q! X9 X% |$ B
*********+ ]: R5 g% X- C% k0 x/ F# C8 a

1 p0 y/ p# P, L9 K8 V这组就复杂些了,每一行都分为3部分,应该分别打印。) y8 A- [0 _) S+ [/ t( T3 Q0 V
程序如下:) D8 z- S- }5 _& E

' `% W3 w0 m2 F$ }4 Tvoid fun2(int n)
- [* ?* g8 h7 y* t3 O: C{
/ L: R* y* V  j$ }    int s,x,y;
1 A* B6 }1 H" F3 y4 X: j    for ( y = 0; y<n; y++ )& J$ O- H, X) H# G% J
    {5 S% V) u& b# ]0 K% ^  a& f" N' c
        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点( F* o- ]) v' Q/ d: i9 E  E
            cout << '-';
: M" R& f# y! _8 T; f& p2 k        for ( x = 0; x < 2 * y + 1; x++ )
' I5 m/ w; z+ E$ u: c8 C4 X; G            cout << '*';
) \" e9 t/ a9 }0 G/ ^        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行4 U' ?! B( N% O# ]* z$ h
            cout << '-';
3 @' h) _9 d! d/ o- w/ g$ D        cout << endl;3 J: G% \& ~* F/ {; O) J9 ^( g1 G
    }$ Q7 i0 H) C% h7 T4 G; H
}# O9 `# N5 f: o, l. _; f7 U
7 H% d( w+ r4 k5 [# n
3:
$ ~; v' I. C0 Y! v4 l7 a5 j! s' [9 M2 t
----*----
* M. Z7 ~/ d. z( r---***---* q8 {/ H5 i: ]; a3 Z7 E
--*****--+ U$ F% }1 }: A7 y
-*******-5 p# a. i5 M3 ]: P; e
*********8 c8 {1 i+ c' w8 }* O8 O) S' @
-*******-3 u  E2 z, y/ n5 o! ^( A
--*****--
9 G' ]$ G$ M1 Y3 x( b---***---) q$ u! v# y* \4 y8 K" g
----*----
) T/ ~7 B& B* i0 S6 w) h
- z; E$ I1 h3 p: h2 B" o这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现) w8 Z: P2 o7 }* A& V
打印下半部的程序:, U1 E1 O4 }$ r1 C, k  e1 r
void fun3( int n )
* ~3 I$ B* j! J% @  `{7 L/ G: [! m# t3 o. E1 c  T* |3 `
    int s,x,y;) s* j6 K5 Z( K9 p( X: x
    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了, u- l/ k8 L" |6 u. l6 S' G: Q! W; Y  n
    for ( y = n - 2; y >= 0; y-- )  $ C( c: k3 J) z4 a2 L6 v
    {# t4 b5 ~6 a7 @, `
        //循环体没有改变
. c, {2 U/ i6 o3 `( O        for ( s = 0; s < n - y - 1; s ++ )4 F6 K# O! _9 h( s1 h% ]
            cout << '-';
, H5 P, z; s# p5 O3 X3 q        for ( x = 0; x < 2 * y + 1; x++ )
3 [- I1 Y; a/ Y7 S1 P4 H( G5 F            cout << '*';
  J' \' i9 t+ ]: ]3 p& r1 a- `1 Y        for ( s = 0; s < n - y - 1; s ++ )! s: E" U3 `  V1 J5 V# |
            cout << '-';' D" A) U* d2 N4 \
        cout << endl;
  [  B3 ^" a/ z% h( k    }: d" P+ }* ~/ R* Y
}4 J/ q  }, |$ n& v- B* ~5 s

% w9 L, u3 O) t( `& [/ I8 u8 t要打印整个图形:2 g/ w. e3 S5 I2 D, Y
( p# D' X+ t2 Y# i4 D* R
void main()4 `) p9 ^# N0 {7 Q( V! e0 n
{
4 ^+ X8 J% H4 z4 C& @2 [    fun2(5);//绘制上半部分3 d' q5 F1 B- A$ N/ S
    fun3(5);//绘制下半部分
( J3 S2 B- a1 S; r}
+ e) _8 h$ r* |+ U1 f) x) `, j4 p# G9 [

# [& ]3 @) V# u" R& m" ]2 _这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.) O: ~( T4 ]4 y* Z; F. h1 f. c
</P><>
</P><>支持</P>
回复

使用道具 举报

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

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

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

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

蒙公网安备 15010502000194号

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

GMT+8, 2026-4-20 16:22 , Processed in 0.408564 second(s), 62 queries .

回顶部