Chinaunix

标题: 用*号输出字母C的图案 [打印本页]

作者: davie5201314    时间: 2016-03-27 21:38
标题: 用*号输出字母C的图案
题目:用*号输出字母C的图案,要求用python写出,求解
作者: yjh777    时间: 2016-03-28 10:55
os.system 调用  figlet  :)
作者: rubyish    时间: 2016-03-29 00:08
本帖最后由 rubyish 于 2016-03-28 22:22 编辑

shishi perl ~
biru:



perl abc.pl
abc.pl
  1. #!/usr/bin/perl

  2. sub printC {
  3.     my %setting = ( fg => '*', bg => ' ', size => 12, in => .3, eq => 1, @_ );
  4.     my ( $size, $in, $fg, $bg ) = @setting{qw/size in fg bg/};
  5.     my $R = ( $size - 4 ) / 3 / 2;
  6.     my ( $move, $that, $this ) = ( 1 / 3, $R );
  7.     my ( $R1, $R2, $R3 ) = ( $R - $in, $R + $in, $R + $move * 2 );
  8.     my $mov2 = $setting{eq} ? $move / 2 : $move;
  9.     $that -= $move for -1 .. $R / 2;
  10.     $this = -$that - $move;

  11.     for ( my $y = -$R3 ; $y <= $R3 ; $y += $move ) {
  12.         for ( my $x = -$R3 ; $x <= $R3 ; $x += $mov2 ) {
  13.             print $bg and next if $x > 0
  14.               and $y > 0 && $y < $that || $y < 0 && $y > $this;
  15.             my $r = sqrt( $x * $x + $y * $y );
  16.             print $R1 < $r && $r < $R2 ? $fg : $bg;
  17.         }
  18.         print "\n";
  19.     }
  20. }

  21. printC;
  22. printC size => 16;
  23. printC size => 16, in => .2;
  24. printC bg   => 'C', fg => ' ', in => .2;
  25. printC size => 40, in => .16, bg => '#', fg => ' ';
  26. printC size => 40, in => .6, bg => '#', fg => ' ';
  27. printC fg => '# ', bg => '. ', in => .2;
  28. printC fg => '# ', bg => '. ', in => .2, eq => 0;
  29. printC fg => '#',  bg => '.',  in => .2, eq => 0;
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2