pascal 分式求和 (fssum)分式求和 (fssum)【问题描述】给出形如直角三角形图形,下面的是n=4行的**********现在请你求出各行“*”的个数倒数之和.例如上面的是1/1+1/2+1/3+1/4=2 1/12【输入格式】输入文
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/10 00:03:13
![pascal 分式求和 (fssum)分式求和 (fssum)【问题描述】给出形如直角三角形图形,下面的是n=4行的**********现在请你求出各行“*”的个数倒数之和.例如上面的是1/1+1/2+1/3+1/4=2 1/12【输入格式】输入文](/uploads/image/z/14583159-63-9.jpg?t=pascal+%E5%88%86%E5%BC%8F%E6%B1%82%E5%92%8C+%28fssum%29%E5%88%86%E5%BC%8F%E6%B1%82%E5%92%8C+%28fssum%29%E3%80%90%E9%97%AE%E9%A2%98%E6%8F%8F%E8%BF%B0%E3%80%91%E7%BB%99%E5%87%BA%E5%BD%A2%E5%A6%82%E7%9B%B4%E8%A7%92%E4%B8%89%E8%A7%92%E5%BD%A2%E5%9B%BE%E5%BD%A2%2C%E4%B8%8B%E9%9D%A2%E7%9A%84%E6%98%AFn%3D4%E8%A1%8C%E7%9A%84%2A%2A%2A%2A%2A%2A%2A%2A%2A%2A%E7%8E%B0%E5%9C%A8%E8%AF%B7%E4%BD%A0%E6%B1%82%E5%87%BA%E5%90%84%E8%A1%8C%E2%80%9C%2A%E2%80%9D%E7%9A%84%E4%B8%AA%E6%95%B0%E5%80%92%E6%95%B0%E4%B9%8B%E5%92%8C.%E4%BE%8B%E5%A6%82%E4%B8%8A%E9%9D%A2%E7%9A%84%E6%98%AF1%2F1%2B1%2F2%2B1%2F3%2B1%2F4%3D2+1%2F12%E3%80%90%E8%BE%93%E5%85%A5%E6%A0%BC%E5%BC%8F%E3%80%91%E8%BE%93%E5%85%A5%E6%96%87)
pascal 分式求和 (fssum)分式求和 (fssum)【问题描述】给出形如直角三角形图形,下面的是n=4行的**********现在请你求出各行“*”的个数倒数之和.例如上面的是1/1+1/2+1/3+1/4=2 1/12【输入格式】输入文
pascal 分式求和 (fssum)
分式求和
(fssum)
【问题描述】
给出形如直角三角形图形,下面的是n=4行的
*
**
***
****
现在请你求出各行“*”的个数倒数之和.
例如上面的是1/1+1/2+1/3+1/4=2 1/12
【输入格式】
输入文件fssum.in的包含一个正整数N,表示图形的行数.
【输出文件】
输出文件fssum.out是一个结果,表示倒数之和的分数最简形式.
【样例输入】
4
【样例输出】
2 1/12
【数据规模与约定】
对于20%的数据,有N≤10;
对于100%的数据,有N≤40.
pascal 分式求和 (fssum)分式求和 (fssum)【问题描述】给出形如直角三角形图形,下面的是n=4行的**********现在请你求出各行“*”的个数倒数之和.例如上面的是1/1+1/2+1/3+1/4=2 1/12【输入格式】输入文
为避免分子分母过大,超出32位整数范围,分数只能两个两个的加,并对每次的累加结果进行约分化简,尽量减小分子分母的数值.这种方法可以算出N=40时的结果为3 11844997/233901280.程序如下.
program fssum;
function GCD(a, b: Longint): Longint;
var
c: Longint;
begin
if a < b then
begin
c := a;
a := b;
b := c;
end;
while b 0 do
begin
c := a mod b;
a := b;
b := c;
end;
GCD := a;
end;
var
n, a, b, c, hcf, lcm, i: Longint;
begin
Assign(Input, 'fssum.in');
Reset(Input);
Readln(n);
Close(Input);
if n c then
begin
Inc(a, b div c);
b := b mod c;
end;
hcf := GCD(b, c);
b := b div hcf;
c := c div hcf;
end;
if b = c then
begin
Inc(a);
b := 0;
end;
Assign(Output, 'fssum.out');
Rewrite(Output);
Write(a);
if b 0 then Write(' ', b, '/', c);
Close(Output);end.