回 帖 发 新 帖 刷新版面

主题:TJU1001

http://acm.tongji.edu.cn/people/ps/showproblem.php?problem_id=1001
这个程序我运行的话明明就是一个菱形呀,为什么OJ过不了呢?
Program TJU1001;
Var
  a, b, c, n, i: Integer;
Begin
  Readln(n);
  a := 90;
  Writeln(chr(90):n);
  b := n;
  For i:=2 To n Do Begin
    b := b - 1;
    a := a - 1;
    Write(chr(a):b);
    Write('':2*(i-1)-1);
    a := a - 1;
    Write(chr(a):1);
    Writeln;
  End;
  For i:=n-1 Downto 2 Do Begin
    b := b + 1;
    a := a - 1;
    Write(chr(a):b);
    Write('':2*(i-1)-1);
    a := a - 1;
    Write(chr(a):1);
    WRiteln;
  End;
  Writeln(chr(a-1):n);
End.

回复列表 (共6个回复)

沙发

晕啊,注意空格数量

板凳

你这个程序的算法看不懂,但是
  Write('':2*(i-1)-1);
应为
  Write('':4*i-6); {2*(i-1)-1 的 2 倍,请注意空格数量}

3 楼

不过改成这个以后就不是菱形了~~~~~~~

4 楼

// 你写的真够乱的,好不容易才搞定
Run ID User Problem Result Memory Time Language Date  
242809 ------  1001  Accepted 260 k 0 ms Free Pascal 2005-05-14 21:36:24

Program TJU1001;
Var
  a, b, c, n, i: Integer;
Begin
  Readln(n);
  a := 90;
  Writeln(chr(90):n*2-1);
  b := n;
  For i:=2 To n Do Begin
    b := b - 1;
    a := a - 1;
    Write('':b*2-2);
    Write(chr(a));
    Write('':3+(i-2)*4);
    a := a - 1;
    Writeln(chr(a));
  End;
  For i:=n-1 Downto 2 Do Begin
    b := b + 1;
    a := a - 1;
    Write('':b*2-2);
    Write(chr(a));
    Write('':3+(i-2)*4);
    a := a - 1;
    Writeln(chr(a));
  End;
  Writeln(chr(a-1):n*2-1);
End.

5 楼

哦,谢谢。不过我感觉我编写的那个程序输出的也是一个菱形呀?为什么不行?

6 楼

你注意(# 代表字母,. 代表空格),这是你程序的输出结果:

..#..
.#.#.
#...#
.#.#.
..#..

而标准答案

....#....
..#...#..
#.......#
..#...#..
....#....

由于 OJ 是把他的答案和你的输出逐个比对的,发现你的第三个是 # 而标案是 .,这样你的程序就哇了

我来回复

您尚未登录,请登录后再回复。点此登录或注册