QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:. Y1 y, V* C' H% p8 Q/ x
1:- V( G/ L$ v8 d) b4 B
  i) |  q+ i! t# T- u% S- T
*+ `, q  v; ~- e7 [7 Z
**
! K- N# G' g4 e" I( C5 m***
3 \: _+ x' O5 j) i" V; \- K7 w5 j+ E* \****
+ k$ o( P4 P  J3 m*****0 V% N" O9 }0 y
******( T' B5 {6 j5 N! r" ^: n8 Y; T7 E
8 k- B) y9 l9 {/ s2 V4 ?
程序如下:- `) d6 B4 T1 Z$ S8 s7 k  l
! i; f8 G8 P$ G4 F  g- Z
void fun1(int n)
  L$ C- ~. f5 ~- U% @{
+ N( I* \8 a/ V- A    for ( int y=0; y<=n; y++ )
) B: H4 o  T0 W3 A    {' g. L4 a% q3 R) N* L1 E
        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关
& m/ w, k% _- _& B* R3 |        {* E. F/ B$ _7 v% N' C
            cout << '*';, L# }& ~$ K! S( M+ j/ l* B5 B: N
        }
7 M/ T& u" L0 ]' c7 n0 |6 Q+ r( w9 [7 v        cout << endl;//换行# g/ D" {3 g1 _3 n1 V8 b' _: U. H$ }
    }
( c: E  Q8 N; }, K. H. z}
% N3 N! K! d( S$ M% ?# d2 v
! \# `* G# f7 m$ |, [2:! Y+ m7 S1 i7 i! y7 {% A$ O, \  e
----*----
, v. D3 u7 u" Q9 w4 _3 i* x) l---***---! ?$ P, L  T1 v2 A  Q& g
--*****--: z. ^" P7 {+ Z6 ^0 E' y, _
-*******-
/ d" v$ P4 s* G0 G0 e8 i+ b*********
  T/ f+ `& O" d: f& W, ]$ m3 Q. y. S7 n# t" `" d  {9 w
这组就复杂些了,每一行都分为3部分,应该分别打印。7 i) g) Z7 S/ N2 f1 R8 u& T" ^+ y
程序如下:" @8 t9 J/ o# d$ o) R3 J
9 ~; S! n$ t3 [- `* \$ e8 a
void fun2(int n)$ J. M0 f/ T$ J" g. N. n. @$ J
{  p( y7 q! c* v/ [8 t& Z" o+ Y2 E
    int s,x,y;
+ M/ z& @! T9 {3 \0 O' Z6 T    for ( y = 0; y<n; y++ ); G! z+ J, b& e" V8 [
    {
. Z& t9 a' g( ^5 g3 z* I' y        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点# ^; J. X7 b  h3 @+ I
            cout << '-';$ Q. ]5 t3 w0 [% v) P0 S$ s: L
        for ( x = 0; x < 2 * y + 1; x++ )0 C# A3 X+ c, x  _, Y' g2 s) Y9 D
            cout << '*';
% y6 W& d- I1 S  t, P        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行
, J3 v7 H( p$ [1 X% P5 d            cout << '-';
4 K3 t; c" ^+ J* T3 w7 w        cout << endl;% \5 e: d6 y3 U  ~" l
    }
& V; W$ }* o! B/ S5 ~}& ~6 g8 U: a/ q! B2 F6 {
" p% o7 R! X/ m, C; o7 O
3:
" S1 J0 n1 a  s( A& G; {9 P# i7 d) {" i! o9 p6 W7 t/ c5 Y
----*----! n6 D; n' J, P7 ?
---***---
* H+ A! o% q4 \- f--*****--& D% h: a. I. Z
-*******-, L) _0 o4 f& q6 n2 I
*********4 \. p0 n4 M# W4 N
-*******-
/ u3 T# Z6 m/ a5 [; Z1 E* z# n--*****--7 D# z  J4 u; S! t& A' w' \
---***---
6 @. s# d1 w9 S3 B1 K/ [----*----
/ ?, l& n, g3 T4 c  p7 m2 Z
$ y, M0 @. K; Y* B$ [& q# Z这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现
; K6 Y& p5 R! J$ ]6 G- i0 z" F打印下半部的程序:
: j' N5 X' @5 Lvoid fun3( int n )
5 j6 ]/ O: ]5 ^+ @{3 T9 i+ s3 o% g$ \
    int s,x,y;
6 C4 m, Y. w; [1 z2 N    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了
' K3 n- y& J$ G! S    for ( y = n - 2; y >= 0; y-- )  1 N* g3 p4 ~+ K9 R0 H  C* k0 \" Q
    {
8 S- a) b0 v$ K7 g        //循环体没有改变2 d4 ?+ Y) A, W/ n* ?
        for ( s = 0; s < n - y - 1; s ++ )
0 G! j2 a3 t, h8 x! Y            cout << '-';. J+ S4 i6 }# \! d3 S$ Q' h
        for ( x = 0; x < 2 * y + 1; x++ ). L( M$ F- X) Q* H! ?, z
            cout << '*';
" k# V8 o6 `5 e9 R+ r        for ( s = 0; s < n - y - 1; s ++ )6 G) r  A5 L2 Q9 x9 E, R
            cout << '-';
; g9 y) X) q6 h& }% Y        cout << endl;" `: l7 n; T* ^7 Q, J
    }* g, S9 N0 B" x/ ?. L
}* i6 a8 U% V/ I  j

; ^# K; e' M  @要打印整个图形:
9 E, \; j3 K& l7 J2 J6 x: }: m; w( o% I& v0 M
void main()
5 O4 z4 J* G: }5 [{5 x! h4 e# |( @5 Z
    fun2(5);//绘制上半部分
0 X' g: B2 j  ?! G$ W1 K2 l# c) y    fun3(5);//绘制下半部分1 ~2 R4 g: X: N- I* v4 q
}
( E" C8 s* d/ r% N7 j3 ~
. K6 }9 Y! a0 ?+ Z* t, K
; u7 U) t2 X: a' _& p+ |这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
" }* D8 B8 X: v* z# V  ?</P><>
</P><>支持</P>
回复

使用道具 举报

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

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

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

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

蒙公网安备 15010502000194号

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

GMT+8, 2026-7-17 22:07 , Processed in 0.450608 second(s), 63 queries .

回顶部