What would be the logic of swapping any two digits of any number based on its position?
例如在57896中,取决于任何两位数的位置它必须被交换。 像第一个位置,第三个或第二个,第五个,然后打印交换的否..
答案 0 :(得分:1)
你可以用数字方式做到这一点,这比进出字符串"要快得多。我将通过交换12345中的2和5进行工作,并且希望您可以概括该方法。用交换为d
的数字表示原始数字和数字之间的差异。
计算要交换的两位数之间的差异。在您的情况下,5 - 2 = 3.请仔细注意标志惯例。
由于2位于1000的位置,5位于单位位置,因此差异d
将为3 * 1000 - 3 * 1 = 2997.注意,第二学期与第一学期相反。
将其添加到原始号码以获取结果。
作为另一个例子,考虑从12345交换2和3.差异是1,2在1000的位置,3在100的位置。因此,差异是1 * 1000 - 1 * 100 = 900.然后将其添加到原始数字。