问题描述
我有两个数字X和Y,我不知道它们的值,但我知道可以包含的最大位数X 是 10(例如),Y 是 3(例如)
I have two numbers X and Y, i don't know their values but i know that the maximal number of digits that can contain X is 10 (for example) and for Y is 3 (for example)
我需要知道等于 X * Y 的 Z 的最大位数.Z = X/Y
I need to know the maximal number of digits of Z that equals to X * Y. Same for Z = X / Y
推荐答案
如果 X
最多可以有 n
个数字并且 Y
最多可以有最多 m
个数字,然后
If X
can have at most n
digits and Y
can have at most m
digits, then
X
这意味着
X * Y
换句话说,
X * Y 最多可以有 n + m 位数字.
对于除法,我们需要取 Y
的最坏情况 - 即值 1.所以 X/Y
的最大位数是 n代码>.
With division, we need to take the worst case for Y
- that is value 1. So maximum number of digits for X / Y
is n
.
然而,如果你知道 Y 正好有 m 个数字,那么我们可以说
However, if you know Y has exactly m digits, then we can say that
Y >= 10 ^ (m - 1)
在这种情况下,我们得到:
in that case we get:
X/Y X/Y
这意味着 X/Y
最多有 n - m + 1
个数字,而 Y 正好有 m 个数字.
This means that X / Y
has at most n - m + 1
digits when Y has exactly m digits.
这篇关于乘除后的位数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!