-1

你能帮我做作业吗?我只是一个初学者,对 Pascal 知之甚少 :(

我应该编写一个除法程序,但根据十进制数有特殊条件。输出应如下所示:

  1. 没有小数,则 20/5=4(只能是 4;不能像 4.00)

  2. 如果是小数,那么只有 1 个小数 9/4=2.3

  3. 如果小数是相同数字的无限,则 1/3=0.(3)

我该怎么做?我正在考虑将其放入数组中,但我不知道如何找到小数点的位置,也不知道如何将括号写入输出。

4

2 回答 2

2

我无法解决第三点,但这里是前 2 点的代码:

Var
   x,y : integer;
   z : real;
Begin
     z := x / y;
     if z = x div y
        then Write(z:4:0) //Write a real var without any decimals
        else Write(z:4:1); //Write a real var with just 1 decimal
End.

你必须改变周围的东西,比如阅读 x 和 y ,但是从这段代码中你几乎可以完成你的作业。

我会尝试第三次解决,过一段时间再检查答案。

于 2013-11-10T14:14:14.503 回答
0

解决第三点:将 x 和 y 视为分数。这是基本思想:

  1. A:=A/GCD(A,B);B:=B/GCD(A,B)
  2. 整数部分:= A div B; A:=A 模型 B
  3. 非周期性部分:while A mod 2=0 do BEGIN C:=C*2;A:=A div 2; 结尾; 而 A mod 5=0 开始 C:=C*5;A:=A div 5; 结尾
  4. 求 M 使得 A*M=999..999。
于 2013-11-13T10:24:25.107 回答