2016-08-19 60 views
-5
What would be the logic of swapping any two digits of any number based on its position? 

例如在57896中,根据任意两位数字的位置它必须交换。 像第一个位置与第三个或第二个与第五个,然后打印交换号..根据其位置交换数字的任意两位数字

+0

你应该分享你以前的尝试或做过的事情,这里的人不会做你的功课! –

+0

其实我很困惑如何交换数字的位数。我可以交换两个字母的字符串,但不能认为上述关注的逻辑.. –

+0

我会建议使用一些数学 – dvhh

回答

1

你可以做到这一点数值,这将比“进出一个字符串”快得多。我将通过交换数字12345中的2和5来工作,并希望您可以概括这种方法。表示原始号码与交换数字的数字之间的差值为d

  1. 计算要交换的两位数之间的差值。在你的情况下,这是5 - 2 = 3。仔细注意符号公约。由于2在1000的位置,并且在单位位置的5,所以差异d将是3 * 1000-3 * 1 = 2997。注意,第二项的符号将与第一学期。

  2. 将其添加到原始数字以获得您的结果。

作为另一个例子,考虑从12345交换2和3.差别是1,2在1000的位置和3在100的位置。因此,差值为1 * 1000 - 1 * 100 = 900。然后将其添加到原始数字中。