我有两个数字 X 和 Y ,我不知道他们的值,但我知道可以包含的最大位数 < em> X 为10 (例如), Y 为3 (例如)
我需要知道 Z 的最大位数,等于 X * Y 。对于 Z = X / Y
也是如此答案 0 :(得分:3)
如果X
最多可以包含n
个数字且Y
最多可以包含m
个数字,那么
X&lt; 10 ^ n且Y <1。 10 ^ m
这意味着
X * Y&lt; 10 ^ n * 10 ^ m = 10 ^(n + m)
换句话说,
X * Y最多可以有n + m个数字。
通过除法,我们需要考虑Y
的最差情况 - 即值1.因此X / Y
的最大位数为n
。
但是,如果你知道Y有正好数字,那么我们可以说
Y&gt; = 10 ^(m - 1)
在这种情况下我们得到:
X / Y&lt; (10 ^ n)/(10 ^(m-1))=&gt; X / Y < (10 ^(n - m + 1))
这意味着,当Y恰好为m位数时,X / Y
最多包含n - m + 1
个数字。
答案 1 :(得分:2)
假设X
中的位数为n
,而Y
的位数为m
且的值为四舍五入,所以
(x*y)
中的最大位数为n+m
和
(x/y)
中的最大位数为n-m+1