【发布时间】:2011-05-01 13:05:33
【问题描述】:
数字是随机生成的。在规定范围内。例如,是两个数:5和10,那么10除5。如果是5和2,则不除。 2 需要减少 1 或 5 需要增加 1。告诉我一个快速算法?
【问题讨论】:
-
当你说“需要减少 1 或 5 增加 1 所需的 2”是什么意思
数字是随机生成的。在规定范围内。例如,是两个数:5和10,那么10除5。如果是5和2,则不除。 2 需要减少 1 或 5 需要增加 1。告诉我一个快速算法?
【问题讨论】:
1. Let A is greater and B is smaller
2. Set M = (A % B)
3. If M == 0, You're done..
4. Else Adjust A either by adding, A = A + B - M
5. or by subtracting, A = A - M
【讨论】:
如果b 除以a 没有余数,a%b==0 为真
【讨论】:
b不除a,他需要调整它们直到没有余数。
if(!(temp1 % temp2)))
temp1= temp1 + (temp1%temp2)
else
tadaaaaa :)
【讨论】:
if (val1 > val2) {
rem = val1 % val2 ;
if (rem == 0) you're done
otherwise required_addition = val2 + rem
} else if (val1 < val2) {
required_addition = val2 - val1;
} else {
they are the same; you are done;
}
【讨论】:
required_addition 是做什么的?
val1 是 4,val2 是 10,required_addition 将是 10+4=14,不能被 4 整除。
与使用除法相比,构造一对可以被除而没有余数的数字会更容易。随机选择第一个数字a,然后随机选择另一个数字b,然后设置c = a*b。
【讨论】: