QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:( h1 W" y; N9 Q' T1 r
1:( M# H9 T2 ^2 P! O
1 A2 K  c! ~1 X* n
*
1 P3 P) y1 T6 a6 o8 \**  d% q- I3 s- V' ~
***- ~7 ]' K, U5 \; [0 T2 f/ P
****
! B! a0 v, a& d7 L+ V6 Q*****- q9 J9 C' ]# R+ H4 F9 v
******) g) I+ b/ S* C
' j& Q4 U" q) o; c
程序如下:8 R3 I- N" _2 n) @' ~; y% w/ i$ \$ f
# x8 ^1 |# y. i- P1 A8 n: D% w' [
void fun1(int n)' P  Y% |" o5 ?1 M$ R3 ^* o
{
* A9 C3 S) Y% u' U) Q5 O8 O$ D    for ( int y=0; y<=n; y++ )
! g$ _, @2 r$ G* |! @* |    {6 P; R: m+ P% }  d
        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关2 ~9 H" u9 i6 z0 P9 ^
        {4 r1 v9 G% S, a; g( w/ c# l1 K, Q
            cout << '*';
/ i* s4 r! f  G$ G" I, J) V        }6 |) x/ D- s2 n1 M, Z5 e
        cout << endl;//换行
4 O; B, f9 u# E0 ?  a( `. m" R. h    }1 A* p3 y' m$ B0 t- o5 d. @
}
& p0 Y0 e! Q( Z
) b/ O, z/ }; O! M% b! C2:6 F3 y, H. Q% L+ _8 t
----*----
: v$ s* ~+ V1 D& p---***---4 q5 S( B" Y2 ^' ^4 e
--*****--# f2 b4 G" L* k. G% z$ B
-*******-, X- Y$ q8 D$ V3 y$ A& S
*********1 R) }, V; F- ?3 }; Y2 Z5 ^$ P9 m

% V- H/ f+ J9 K$ V0 V$ N这组就复杂些了,每一行都分为3部分,应该分别打印。8 A# @, A& c. ?3 s5 i1 z
程序如下:# K. z5 b2 W0 E5 P" n. }

0 a1 |2 @+ j4 jvoid fun2(int n): ]3 C$ I! a) j. C
{
- P  ]- I5 `" E) ^' L    int s,x,y;
5 p( [5 J! t1 u' q    for ( y = 0; y<n; y++ )  O. c8 O. U! c$ ]4 o) @4 M
    {5 U9 X2 x4 ~! q0 k
        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点
7 D/ y. F8 R! q, ?7 n            cout << '-';0 M- N1 f5 w6 n$ U. J( |# m
        for ( x = 0; x < 2 * y + 1; x++ )
% B) t) l1 f+ l3 e0 e6 u" \            cout << '*';
. M# b- x! \* d4 V3 u" F        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行
' V2 p5 P6 g( H8 ^            cout << '-';
6 m; I# ^, @4 y8 Q/ c1 ]        cout << endl;1 b+ f% u. D1 W3 Z
    }
0 Y! l9 m$ P( q7 g4 m& m$ e3 g}  n) P8 S6 R/ N* |

8 l& C# z5 r. H# j* H6 L# K3:
& e; b9 i6 f* n3 [) s# Q# z
' M9 R- c/ I5 E7 U----*----
* J8 J7 f! y8 X* L) X' N3 l3 I( Y---***---, [3 t  T. @3 S6 D2 E/ }) L  H" J
--*****--, O, f* S  O$ I: a' f" k2 A5 A
-*******-4 g% X) b2 z  Y7 c" Q: v9 g& P
*********" O+ z' Z% q: y; I
-*******-) m. F, i% w7 m1 D% c. h, I
--*****--
+ S' j8 M+ R2 ]# Y& m1 Z2 g4 L---***---
. i* L3 W+ b( U5 _$ K# g+ d& b----*----
( G0 R  f. D4 ]4 a4 A9 Z: j% Q# P) j$ ^' M: E$ T, V. i
这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现
) L5 }3 F& I5 o: y  R$ @打印下半部的程序:
6 W" Z; L" T% N9 I9 ^+ |void fun3( int n )7 W5 u) u2 A+ K
{( M! M& ]- {* z' |! f" f* K! B
    int s,x,y;  W) |4 \; e$ P/ ^: P' t8 R& ?! B
    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了9 ^4 [) t$ F: J# ~0 G
    for ( y = n - 2; y >= 0; y-- )  + ]/ Y* @4 |0 B; e* Q9 f6 z7 p+ \* C
    {- ?; i/ j' W  p0 |- `% i5 i& c' w
        //循环体没有改变* S# Y) Y  U  [. @5 i3 m8 T
        for ( s = 0; s < n - y - 1; s ++ )
& ~; A, r( V' h            cout << '-';" ^8 b2 O& A9 }* }$ d, e
        for ( x = 0; x < 2 * y + 1; x++ )7 u- }& X; }# i2 b0 X
            cout << '*';
+ o4 Q% u3 `* k  A( f; i2 N) f        for ( s = 0; s < n - y - 1; s ++ )
6 Z4 G# `" Z6 F, i9 z3 p: |            cout << '-';
7 R& \* D4 ?+ X2 ]9 `        cout << endl;
) K; L2 F4 A+ y, i    }
  x$ ?* j6 k( M: d}
. w& |5 V4 B/ x# O, r4 c8 N, w
* b7 u4 c2 R$ A+ I. C3 Q要打印整个图形:
( l: ~2 p7 Y6 F% t7 P) w. F. ]/ E; V" i) g# {) w
void main()
0 c  j: @" M5 _& A{/ \0 h$ |9 d1 g1 y0 D4 z7 q
    fun2(5);//绘制上半部分9 j3 ~1 W; j6 c: ]
    fun3(5);//绘制下半部分7 s! H: \" B9 {* c$ O' m9 ~2 R
}
4 K9 V# w5 F7 H9 ?2 Q7 Y+ Y3 P
* P5 r' S) I2 T: L, A0 x
: e$ n+ Y, n* |, A这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.7 ~. M! Q6 O" ]7 S2 A( g
</P><>
</P><>支持</P>
回复

使用道具 举报

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

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

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

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

蒙公网安备 15010502000194号

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

GMT+8, 2025-9-17 11:51 , Processed in 0.410490 second(s), 63 queries .

回顶部