QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:% H7 @+ D* o8 d# u2 A! p" i
1:
) ^9 ?7 P+ w9 v* p0 ]* ?2 I! V4 Q( M! y9 b5 g' t
*
3 K$ _1 f( f0 J2 H- y& M4 n" v**
  o& Z2 f. n0 \4 |! F) X- J***
7 d' n7 j0 v0 ]/ L1 B4 e! M/ I****
' u+ i0 u+ n# }" L! ]6 i*****
$ M, R4 b+ K3 ^- t6 x/ ~8 b7 d******2 w9 P; V# q- n6 e: }
6 I" k  }2 y, g
程序如下:* H5 U7 {8 R, T( j) Y

, W: B  I8 j* z& o! ivoid fun1(int n)+ {5 H7 d2 W" k- I
{
7 t( \: E% G' A! I3 ?5 ^    for ( int y=0; y<=n; y++ )
3 y# m6 P$ S  R% Y% S6 _" G    {  i& N( ?- ^5 b! O% ~. Y. u
        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关9 b6 t- C: a8 J( {  s
        {9 o4 R+ F( z5 M" e/ i
            cout << '*';* n# z$ S  n( Z. Q/ Y
        }
0 M  b. ~- E7 Y8 D  a        cout << endl;//换行# p. K3 S; ?$ N, o% i8 M
    }
) W; D: b7 Y3 b6 k9 X3 m! p}8 S# \5 T9 ~3 g6 \0 b4 D& h
$ N5 U: v# O$ \+ }4 W
2:2 q+ @9 t2 J" G  A& J
----*----
5 Z: P# u0 p( E, g6 p' O% w---***---
3 m. D; i3 p$ s5 Z& _  d3 C3 o--*****--0 y/ W7 T3 n' \& p$ d1 g
-*******-$ g* h' T3 r  n5 R+ T0 l, `
*********
7 U0 ]6 \/ p5 G" W7 t9 m. r4 E. S9 X7 ?- C) u
这组就复杂些了,每一行都分为3部分,应该分别打印。' K4 h' x! X# O+ g: H8 q
程序如下:
3 H6 S: |6 d; S  C8 J- v/ H' X2 Z! s. H8 J/ N" a
void fun2(int n)
& q7 L# k0 Z7 u" H{. j! ^. L( y% @* Z- l# x  ]
    int s,x,y;% G* T+ T. }- M9 C% P. F/ n+ a
    for ( y = 0; y<n; y++ )
% }% K; o/ l4 `5 n' j! S1 f    {: V8 u$ E9 o6 ?9 k6 ?
        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点
* ?! y1 ]# g' z( T            cout << '-';
# m% `6 d" y6 Y) w3 i4 r) \% S" {        for ( x = 0; x < 2 * y + 1; x++ )
# c  p5 g3 Z" Y+ Q* Y# q            cout << '*';' L  U* F/ B0 r/ n+ e/ n2 w# B9 ~3 z
        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行
% O5 a3 N0 O- v) z            cout << '-';
$ C: l/ l3 s2 T' l        cout << endl;+ U0 J; O7 C2 h- [* c: \3 |
    }, q4 M8 o5 |' M) F8 _
}
' @% `8 w. C. I1 z8 J7 a& F( D8 ]
3:
9 ~1 q6 B- Y; m1 B8 G9 b' Z- D# @" x) p4 X6 {* h
----*----
/ R! J/ X$ p1 Q: Z- ?---***---3 n7 `7 `. e# L
--*****--
! N, C! [2 ~& K5 c4 c-*******-
4 J" o/ W+ F" U1 t*********
5 k( p3 j- u& K" G-*******-
  ~" j' g7 x1 J--*****--3 q2 G' M: ]" e# U2 G9 I
---***---- h  J7 N" l6 j
----*----3 S3 ]& Z* j4 Y6 T$ k1 [7 B* ]
4 |  e0 N! b# |8 d7 X$ H
这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现
% [" s. D+ Q- c& z6 x打印下半部的程序:
9 o" [  B1 I# V. P+ Pvoid fun3( int n )% @9 m, J0 |8 H( w
{% y/ {# i. y* V* S8 |) y
    int s,x,y;
+ j* d% P2 v+ q/ a/ z( f4 q3 }    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了
$ `1 ]# S' q7 N0 s$ y! c    for ( y = n - 2; y >= 0; y-- )  
7 P1 [* z0 B9 @  f1 c5 ^    {. \) o9 b' R5 Z4 J7 ?
        //循环体没有改变
0 ~5 [5 K0 _5 Q0 Z3 W+ X        for ( s = 0; s < n - y - 1; s ++ )* y: `8 q% h  _& a% v" S3 A  i" a
            cout << '-';. x, R9 \1 u0 J) D
        for ( x = 0; x < 2 * y + 1; x++ )8 c# P& R0 R0 Z- w+ z
            cout << '*';
$ G6 C+ Z1 S5 \; R        for ( s = 0; s < n - y - 1; s ++ )
# L/ X" D# u1 T: T9 G' k. s" Y6 O            cout << '-';
  c2 L. N% \2 ?  m        cout << endl;, p( i0 d5 M* \" u
    }
* n0 N8 S. \8 [) e}
* U& N0 U$ A3 W8 `" ~0 b9 q  A6 X! x  a  P4 Q. G0 D  i
要打印整个图形:( S0 F: K0 W$ K. Q$ Q
1 x/ I' U/ Q, |* x5 Z( k# m- Y- R
void main(), P8 U; A7 Q- m0 N* L5 E6 M
{. D- g' T7 e/ n# ~
    fun2(5);//绘制上半部分# F1 z( j' n0 |# M% j9 @) y* a7 s
    fun3(5);//绘制下半部分
9 r" k* T+ o( i- X5 y1 U6 Y}6 p* c- X# s# \% C, w  W

8 Y, M9 I  p6 @. q1 ^& R( {  D
7 H0 m' e+ w% C& x2 _# k9 Z1 P& @这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
6 u8 T0 I+ L( C  z; `$ @9 M</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 00:54 , Processed in 0.448553 second(s), 63 queries .

回顶部