您的位置:首页 > 其它

【开放】:笨笨的速算本领______难度:★______内有简单提示.

2010-05-17 11:45 330 查看
题目描述:
有一天,老师把笨笨叫到面前,说她数学如何如何学的不好,如何如何的懒。
笨笨很不服气,于是就说,老师你考我心算题吧。
于是老师就问:现在给你1-10这些数,全部相乘后最低的一个非0位是多少?
笨笨马上回答:8
老师很惊讶,从此就对笨笨刮目相看了。
你们知道笨笨是怎么算的吗?

输入:
有多组数据,每组第一行是n,接下来有n行,每行有两个数a,k (1<= a,k <= 1e9)
表示的是有k个a相乘,最后还需要把这n个结果也相乘

输出:
每组输出一个数字,表示最后相乘的结果里的最后一位非零位

样例输入:
2
2 4
10 10

10
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1

样例输出:
6
8

其它信息:

能给末尾产生0的方式有2*5, 10 这两种情况, 将1....10 转化成2,5与其他数相乘情况, 问题就简化了很多.

同样,6也可以分解成2*3, 所以将所有的输入均分解后,只有这么4种数相乘, 即1 ,2,5,7, 考虑这些数在不同数目下乘积

末尾是几吧!

例如:

2

2 4

10 1

可以分解为: 2一共出现了,4+1次(10里有1个2). 5出现了1次.(10里有1个5) !

整个乘法为: 2*2*2*2*2*5, 由于5的个数比2少, 所以只能产生1个10,即2*5=10, 它的末尾是0,不会产生非0低位,所以从整个乘法中去除掉2,5, 还剩2*2*2*2, 只要确定这个乘积得末尾是多少就可以了! 一个数的n次方的末尾数字是有规律出现的, 沿着思路继续思考吧.

提交OJ:http://yzfy.org/dis/listpost.php?tid=1072&extra=page%3D1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: