回 帖 发 新 帖 刷新版面

主题:moz!Templar9d!我有一个新发现!

期末考试终于结束了……

前几天随便到PASCAL论坛一逛,这一逛不要紧,竟然发现了好东西:

你们最近几个月一直在研究的一个问题“输入n,输出n!最后一个非0的数字”,竟然在PASCAL上面找到了方法!
那是PASCAL斑竹说的:

{1}=1
{2}=2={1}*2
{3}=6={2}*3
{4}=4={3}*4的个位
但是到{5}就特殊了:
{5}=2={4}*8的个位。
以此类推,以后乘的如果不是5的倍数就乘那个数的个位,否则乘8。每一次都取答案的个位。

程序……你们会了吗?

回复列表 (共4个回复)

沙发

10位数,你乘给我看看

板凳

考试结束了?
先恭喜一下了。

[quote]不是5的倍数就乘那个数的个位,否则乘8。[/quote]不对吧?还是我理解错了?

这个问题等暑假回家了有马桶可坐了再慢慢想。主要是怎么证明Moz的那个方法~~~

3 楼

准确来说应该是这样的:

当要乘的数的个位为1、2、3、4、6、7、8、9中的一个时,就乘它的个位;
当要乘的数的个位为0时,乘它的最后一位非0的数字;
当要乘的数的个位为5时:

由于{10}=8,所以这个数去掉个位剩下的数除以4的余数就决定了乘哪个数:余数为1--8,2--4,3--2,0--6。

应该是这样的,不知道你们怎么说。

4 楼

重复我一楼的意见,

别说是乘法了,加法比乘法要快。
你试试加法,从1加到10位数,看看需要多少时间?

我来回复

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