QQ登录

只需要一步,快速开始

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

算法入门系列之一

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

7

主题

1

听众

43

积分

升级  40%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2004-6-6 13:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
问题:编程打印下面三组图形:' @3 t3 s6 F% ?, q
1:7 w- I+ O" h% Z& L

# w' ^2 }) L! m% Y! R*
+ C9 j+ j) |+ {! [! J, U& _7 @% @**
' y8 u7 A' W$ D+ c1 ?9 y6 \***# D8 q" j- R2 }9 S; ]; q7 u" |. X
****3 d/ E: F, K4 Y5 f6 }4 R* E. u. t8 C
*****
# _$ b& G/ |% f9 U% b2 H0 G9 D/ Q******
/ U; z/ O' J) r6 y  u( y" k& M/ O8 c0 K6 u
程序如下:) g9 `0 q8 [6 |# c- f% f' ~

6 |) I' o8 X8 }/ ]' J* pvoid fun1(int n)! |2 H+ z) d0 [  S- x' ~2 Z
{+ b" V+ v( D+ @' Y8 i
    for ( int y=0; y<=n; y++ )) v, T* Y6 {  [' Q" \* {- P
    {
5 A8 H/ v+ l# F" g8 }        for ( int x=0; x<=y; x++ )//注意此层的终止条件与y有关
* c. F% ~' }: n) i7 o" P5 S$ r" ?        {) T+ y" ^0 L6 i! P
            cout << '*';2 \8 D( x8 y: Q4 Y: ~
        }
; u) l9 i7 B4 R        cout << endl;//换行# M; {) G% [' ?/ z* b6 {, {* n2 [
    }
6 n6 b1 M& _3 U- Q  F6 B$ {" x}, Z# {( Q& R& T$ l! ^
8 R6 R. s. P& M1 d" F
2:
3 O7 W  |+ r5 ], g% X----*----  g9 O; j/ E7 S6 {: m
---***---2 Y/ ]2 R% U1 e# S) L9 |
--*****--
$ q& [+ y! \! ]5 O-*******-. y# z+ A. Y+ P7 ^
*********7 |5 ~( f5 O: O6 U( E

3 T1 e' u4 t8 I: J$ c; o0 u这组就复杂些了,每一行都分为3部分,应该分别打印。
# F. n1 G! A6 p. v3 r9 i' A程序如下:
9 t4 n6 S8 m. W9 k' C
7 q4 }/ T& G2 Jvoid fun2(int n)
6 z, g' e! Z; P8 O. J. w{
/ I+ ?3 i: b& N/ Q    int s,x,y;! q# q7 h* G/ n1 [( _, b
    for ( y = 0; y<n; y++ )
1 q& p; h7 f/ S1 H% x; ~5 }( f    {" s' u0 f. }1 b" `- {) k/ d# b
        for ( s = 0; s < n - y - 1; s ++ )  // 确定开始的'-'有n - y -1个是重点
& E. [2 {* L  H) U# c4 Q, N! ~            cout << '-';
% b4 z' k! a* C& a9 h( [3 p        for ( x = 0; x < 2 * y + 1; x++ )
- M5 k* v, }( |+ X4 K( J8 v            cout << '*';
( l$ @8 l9 G( j3 d" K- `- p% k        for ( s = 0; s < n - y - 1; s ++ )//因为左右对称,直接将上面的搬下来就行
( I: P' a- a& u8 Y+ T4 o            cout << '-';7 w0 D: A' G) S8 N& j
        cout << endl;
2 g* A7 G6 m. s0 e    }
9 Y- }) \' b2 ?( x9 i, B3 ^& Y}  ?, x% R8 C2 l. g* m

  @! Y+ ~; ~$ q+ J' A3:8 d0 m  E: i4 B6 h; V( i
5 S, C& h' X9 F) r8 }
----*----2 ?+ {* E; q1 @. R
---***---
3 h# I' X5 H! v, {0 i--*****--& }$ r- C9 e  ]" q
-*******-4 q2 `6 ^8 z) K; a6 }  }7 M
*********
5 h1 k* B$ Q- D: z: T8 C-*******-& G7 e% F: Q5 y5 r/ F4 V
--*****--
- I( Q  u0 a) ~. U0 Q---***---
; \& Y3 Q# |! v$ D1 r/ D5 L----*----# E2 r' l) w9 N
- C5 d. q2 l0 i' B+ J" P
这个图形就较为复杂了,观察发现,上半部分与2相同,下半部分将2中的图倒了过来。所以只要写打印下半部分的图就可以了,这段程序也可以通过对fun2改造来实现7 c) [5 h. i- \# b" V2 ?
打印下半部的程序:- R2 V- q: L' e4 g& |' K; e* E
void fun3( int n )
/ S# R0 r( G+ {8 |; Z& m& F8 J; p{1 c) q" |: t7 \/ |$ t$ p
    int s,x,y;
; H4 `7 U& t3 U. d    //将循环的过程到了过来,注意开始y = n - 2,而不是n-1,至于为什么,自己试试就知道了/ d; g$ d. _, u7 k
    for ( y = n - 2; y >= 0; y-- )  
# x$ K- G( w# x- P1 A* j    {
1 m' ~# z, F5 p$ j5 t- d/ f: n( D: d: G        //循环体没有改变5 j4 x- H) |* N; i8 c7 A
        for ( s = 0; s < n - y - 1; s ++ )6 T% i! D7 b0 ^) _4 A0 }; G5 F( r/ h
            cout << '-';
% V* V6 f' R* }5 o. j  D        for ( x = 0; x < 2 * y + 1; x++ )
' c! J! K$ c2 b5 x, X, _! ]: {            cout << '*';
6 @2 R* h5 p! Q3 I2 _        for ( s = 0; s < n - y - 1; s ++ )
: r4 B0 ]) X. |+ S            cout << '-';
; M, }8 D3 U, O4 o        cout << endl;
! F  V% A- G7 s* y& c% H    }
1 B; Z( G4 n- ?+ s6 q6 e. O$ Q. h}
3 @" w* U: T, e9 l( j7 x; ?  ~) O# T3 c. ^4 z* P" U1 ~# e3 K* p- E
要打印整个图形:& B3 c7 s# c) n6 f
+ a3 K0 c  B+ O5 y, b! A0 R
void main()
; t% y2 Y; g' j" p{& w( s6 Q8 n' e1 }
    fun2(5);//绘制上半部分" W9 U* V% H$ H( y. C6 I+ G
    fun3(5);//绘制下半部分
" ~: \# @0 b7 i! ?}
5 J6 n1 r4 d2 |3 _; `* Q2 z( u4 E2 l/ Y$ v- d) ?
4 b- O8 ?1 p& N& R) R) d# R" g( ~
这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
Mouqx        

1

主题

0

听众

21

积分

升级  16.84%

该用户从未签到

新人进步奖

<> 这些是比较简单的算法程序.我打算开一个算法入门区,为初学者提供服务.大家有问题的话可以一起交流.: s0 w$ p7 v/ R
</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 19:23 , Processed in 0.503610 second(s), 63 queries .

回顶部