作者gofin (云色)
看板Visual_Basic
标题Re: [VB6 ] Q10083: Division
时间Tue Nov 25 22:20:48 2008
我不知道我的想法有没有问题!但是提出来大家参考一下
如果有错也请不吝指教
先把算式拆成两半
分母: (t^b -1)
= (t^b-t^0) 因当t越大 t^0越不重要
= 假设分母为t^b
分子: (t^a -1)
=同上理
=假设分子为t^a
还原:t^a/t^b=t^(a-b)
然後用t^(a-b)去找出小於一百位数的整数应该会比原本公式简单
(当然应该也会用到大数相乘或相加的函数..网路上很多..可求google大神)
找出这些整数後 再全部丢回原本的公式 检查是否为整数...
这样应该会比较快....?
※ 引述《tomas0011 (tomas0011)》之铭言:
: 有高手可以帮解题吗^^?(这不是作业)
: 我有贴在知识家:
: http://tw.knowledge.yahoo.com/question/question?qid=1508112308491
: 内容:
: Q10083: Division (20点)
: 给你3个正整数 t,a,b(0 < t,a,b <= 2147483647),请你计算 ( t^a - 1) / (t^b - 1)。如果答案是小於100位数的整数,请输出答案。否则请输出 "is not an integer with less than 100 digits."。
: Input
: 每组测试资料一列,含有3个正整数 t、a、b。
: Output
: 每组测试资料输出一列,如题目所述,格式请参考Sample Output。
: Sample Input
: 2 9 3
: 2 3 2
: 21 42 7
: 123 911 1
: Sample Output
: (2^9-1)/(2^3-1) 73
: (2^3-1)/(2^2-1) is not an integer with less than 100 digits.
: (21^42-1)/(21^7-1) 18952884496956715554550978627384117011154680106
: (123^911-1)/(123^1-1) is not an integer with less than 100 digits.
: ---------------------------------------------------------------------------------------
: 这题的重点是再,除数也就是分母也大於可以直接除的范围
: 假设一个很大的被除数跟小小的除数
: 例如:
: 123123123123123123/123456
: 可以分割成
: (123/123456)x 100000000000000 + (123/123456) x 1000000000000 ......
: 可是这题的分母与分子都大余可以用内建程式除的上限
: 可能这题有一些技巧
: 因为他是 (t^a-1) / (t^b-1)
: 若a=2的话 平方公式就是 (t+1)(t-1) = (t^2-1)
: Q1:那无限呢?
: 若题目是输入除数和被除数都非常大
: (这只是假设) 被除数 120000000000000 除数 1200000000
: 被除数可以拆成
: (1200/1200)x(1000/1000)x(1000/1000)x1000x100
: 若被除数 21569874135145679246568947894654.......
: 除数 5645123487896456489421321....
: 这种找因式的方法可能就跑不出来了
: 而一直相减的暴力法就更不用说了...
: (大数相除 *除数和被除数都溢位)
: Q2:不知道有大大有什麽好方法可以提供^^????
: (VB6.0程式码或者演算法都OK=ˇ=")
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.130.143.182
1F:推 tomas0011:嗯!! 大数相乘,次方ok 重点还是在相除^^" 11/25 22:54
2F:→ tomas0011:分子跟分母都超出上限 呵 刚题目我有一点地方看错 11/25 22:55
3F:→ tomas0011:如果 分子除分母为整数也就是整除!分母则为分子的因数 11/25 22:57
4F:→ tomas0011:问题就来了!要如何把分母(大数)分割 成较小的因数 11/25 22:58
5F:→ tomas0011:而每次除分母因数时判断分子是否变为小数 即为不整除^^? 11/25 22:59
6F:→ tomas0011:可是若途中遇到了超过可以用 "除法直接除的(分母)质数" 11/25 23:01
7F:→ tomas0011:题目又会产生bug罗 !! 好难ˊˋˊˋˊˋˊˋ 11/25 23:01