一道pascal的余数(韩信点兵)题!

来源:百度知道 编辑:UC知道 时间:2024/06/04 23:54:29
某数,除5余4,除6余1,除7余4,求此数。

告诉一下思路,谢谢!!!!!!!!!!!!

最简单的算法:
从1往上递增,然后不断检测是否符合条件,找到目标为止.

以下程序:

program tt;
var n:integer;
begin
for n:=1 to (你需要的数值范围) do
if (n mod 5=4) and (n mod 6=1) ang (n mod 7=4) then
writeln(n);
end.

X*5=4
x*6=1

这个方程会解吧....-0-

这题可以用经典的中国剩余定理来解决。
一千多年前的《孙子算经》中,有这样一道算术题:

“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”按照今天的话来说:一个数除以3余2,除以5余3,除以7余2,求这个数.

这样的问题,也有人称为“韩信点兵”.它形成了一类问题,也就是初等数论中解同余式.这类问题的有解条件和解的方法被称为“中国剩余定理”,这是由中国人首先提出的.

① 有一个数,除以3余2,除以4余1,问这个数除以12余几?

解:除以3余2的数有:

2, 5, 8, 11,14, 17, 20, 23….

它们除以12的余数是:

2,5,8,11,2,5,8,11,….

除以4余1的数有:

1, 5, 9, 13, 17, 21, 25, 29,….

它们除以12的余数是:

1, 5, 9, 1, 5, 9,….

一个数除以12的余数是唯一的.上面两行余数中,只有5是共同的,因此这个数除以12的余数是5.

如果我们把①的问题改变一下,不求被12除的余数,而是求这个数.很明显,满足条件的数是很多的,它是 5+12×整数,

整数可以取0,1,2,…,无穷无尽.事实上,我们首先找出5后,注意到12是3与4的最小公倍数,再加上12的整数倍,就都是满足条件的数.这