background image

分析:

这个题目较易,发现,其它情况下有。如要求实数解的话,这基本已经可以写出递归

函数了。但由于题目要求精确的分数解,还需做一些调整。设,则由递归关系,有,再约
分化简,即得。但发现一个问题:求出时,需要返回两个整数:分子与分母,而通常的函
数只能返回一个整数。

这个问题一般有两类解决办法,一种是让求值函数返回一个结构体变量,这样就可

以返回两个变量了(其实还可以不只两个呢);另一种是在求值函数的参数表中加入两

个指针变量或引用变量,通过参数给带回数值。但由于后一种做法会使程序结构不清晰
—返回值是由参数表得到的,因此我们使用前一种方法。

另外,在通过得出后,就已经是最简分数了,无须化简。证明如下:

若是最简分数,即说明的最大公约数为 1,即对任何,都有与不全为 0,不防记、,

则有

只要与不全为 0,且,就有与不全为 0。因此对任何的,有与不全为 0。

而对于的情况而言,记,则有

由于,因此同样有与不全为 0。
所以对任意,都有与不全为 0,因此它们的最大公约数为 1,即是最简分数。虽然这

是个要求(即)是最简分数的结论,但由于数列第二项为,是最简分数,因此可以证明
第三项也是最简分数,同时也证明对所有的,求出的就是最简分数,无须化简。

1

1

=

a

1

1

1

+

=

n

n

a

a

p

q

a

n

=

1

q

p

p

p

q

a

a

n

n

+

=

+

=

+

=

1

1

1

1

1

n

a

1

n

aqp

p

q

a

n

=

1

q

p

p

a

n

+

=

n

a

p

qq

pq

r

<

1

r

mod r

mod a

r

q

=

mod

b

r

p

=

mod

r

b

a

r

q

p

mod

)

(

mod

)

(

+

=

+

ab

r

b

r

a

<

<

,a

r

b

a

mod

)

(

+

q

r

<

1

r

mod

r

q

p

mod

)

(

+

p

r

q

<

a

r

p

=

mod

r

q

a

r

q

p

mod

)

(

mod

)

(

+

=

+

r

q

r

a

<

<

<

0

,

0

r

mod

r

q

p

mod

)

(

+

p

r

<

1

r

mod

r

q

p

mod

)

(

+

q

p

p

+

1

n

a

p

q
2

1

n

a

q

p

p

+

3