QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |正序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:: p% T% y* Y# D+ y( r" [& T
1:
  f8 U+ e& ~% w. F, @5 i4 ]% Z1 ]) L( T0 o0 T9 X+ q
*) c# ^" @) V5 l" x$ F
**) s* W6 u6 A3 R2 ^6 [' a: g/ Q
***
9 q  R* h, d3 t% W8 V$ x9 M0 a+ {6 w****
! ]% _4 i/ n. h0 c2 i! n*****
! Y& X+ J* q* D: r- A******6 |* m5 z  S7 A" ^; i' A

$ S1 l8 E$ c+ E( O* T4 W$ @6 n程序如下:3 R# `# L. ?& x) f* `
8 }0 h% m& d% j$ `
void fun1(int n)7 V! ], T( F& B8 C
{& P; p9 |# ]- h8 U' @  K
    for ( int y=0; y<=n; y++ )
  q$ U& f0 ^. h/ m4 |2 \$ T    {
  i7 w4 r! `3 v# ]        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关* ~3 x5 g! `9 x/ K
        {+ {1 V* i& n/ d
            cout << '*';7 N0 i$ t! {- f; q- z: `7 J, J: S1 ^
        }8 _6 C  |. X* E- t! k
        cout << endl;//换行
* Q7 j; d$ b  E4 S  w% L( f    }! j) P6 R5 B8 T/ V
}( }5 z6 `5 N# I) S6 G% d

, h6 F/ u& J4 C5 v3 f2:
# i5 i- ^, }( e----*----
/ b7 }( r  E5 k& A* M; E; L- _---***---
6 r" ~0 x! e! F' s# ?--*****--" L$ \9 {4 I1 \* A; W7 {+ k% X4 x
-*******-  n' \1 H1 ?; W$ a) H0 e' v
*********
5 M) a! E, [4 F+ A6 \4 S* a% u* v7 I% ^0 H: o: v
这组就复杂些了,每一行都分为3部分,应该分别打印。# u9 @- F' I6 i* w4 @6 ]; c8 n( t
程序如下:
" ~( h* `" Z! x& ~. {  n. Z8 U
! M; U6 b4 [: N" jvoid fun2(int n)* w) ?( e2 @+ ]; O+ Q7 x9 h
{0 _+ d: Z3 X, X& a" t7 H
    int s,x,y;4 g, L" |) X& M4 C$ _, E0 d
    for ( y = 0; y<n; y++ )
* U6 U- @4 b( |$ {5 I    {  g2 ^7 L& U& ]" \; O1 Z. T  |
        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点& E6 G/ f4 j7 A
            cout << '-';( o- i8 V7 |$ v: [4 X
        for ( x = 0; x < 2 * y + 1; x++ )
8 h7 T3 A9 t% G* H4 d            cout << '*';
5 l! s3 o6 U/ Z, S* H; m6 l        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行
6 u$ b+ g) J, p, V& @2 Q            cout << '-';
6 @( R# C3 w# [  B. q        cout << endl;- b, k- ?2 j6 a* s' O$ a6 n
    }6 x9 V% c- u  m9 u
}* u( H  t4 _- C9 x7 e# \
& I. {0 n( }. [" x2 O# ~
3:  L* ]' P5 ?  i
8 C+ x. ^. L2 C6 w; d# c( |- s6 y6 h
----*----) G) ?, F3 |; |2 e$ k$ Q
---***---
+ N4 `1 i* D9 `- V# x$ y--*****--: n' W) y0 ]" |1 ~* h/ B
-*******-/ \4 T3 F. M, K% W
*********
! O& H# \7 H2 n+ B6 U# Y) E-*******-: ~* E0 c$ k# `$ {! H
--*****--
5 o; }; K; I6 e: O5 T---***---) m% V" z' x/ y, }% v7 P
----*----
$ @  j) G8 S# F' a+ X* V" Q
- t9 M  w4 J/ f6 [这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现
/ S8 Q9 d8 a! C8 w打印下半部的程序:6 L! V' _3 B0 @- J* ?
void fun3( int n )  J- B% M- A  I+ {3 H: d
{
% K' u! K" B* w  U# Z    int s,x,y;
9 z+ J0 i0 U) C! a3 N2 Z    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了) y6 W, @5 s) R8 z
    for ( y = n - 2; y >= 0; y-- )  1 I( h8 X. @5 |% g2 z# r
    {+ w2 d0 ~2 a/ q) b0 p0 P
        //循环体没有改变
9 Y1 g, f$ m! X5 v        for ( s = 0; s < n - y - 1; s ++ )% c* b' O6 P! S9 x) x
            cout << '-';
) m9 p8 J; Z$ r0 L! M' @" j" t        for ( x = 0; x < 2 * y + 1; x++ )
, _% g' b- ^% n3 {4 m- N5 g+ o            cout << '*';
5 g5 V3 z- ^2 m+ c! E0 K        for ( s = 0; s < n - y - 1; s ++ )3 |! x2 ?* c8 M
            cout << '-';+ g" ]$ a' Y3 o3 h4 s; B
        cout << endl;/ Y7 N6 t- r" \% ]$ [
    }; Q$ r4 a# c2 z' x7 u8 H+ F
}
# @3 V' P+ O9 v; P2 [+ n7 i
8 P9 A( q  i+ V# q* a要打印整个图形:0 {" U5 |$ q1 |) W* Z+ O
( ]% _; E) V3 u5 o5 k% q4 f
void main()& U; H' v! [+ Q- n. d, c
{# {0 Z% {- h+ Z; c6 K/ y7 D
    fun2(5);//绘制上半部分
, H7 @8 y9 k# R$ }  e7 Z7 j    fun3(5);//绘制下半部分
* L, A0 }* x) \# F2 b, Q}
6 `& F# j/ D) O* {9 Z
+ I' k' t; Q# L* \
+ O! d6 |0 @. D* q3 c这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.! q2 q4 K' a' x4 [" ?% G* K; K
</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-19 18:47 , Processed in 0.421338 second(s), 63 queries .

回顶部