乘法,除法后的位数

时间:2014-06-19 09:58:11

标签: c# math multiplication

我有两个数字 X Y ,我不知道他们的值,但我知道可以包含的最大位数 < em> X 为10 (例如), Y 为3 (例如)

我需要知道 Z 的最大位数,等于 X * Y 。对于 Z = X / Y

也是如此

2 个答案:

答案 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