根据位置交换数字的任意2位数

时间:2016-08-19 09:19:52

标签: c

What would be the logic of swapping any two digits of any number based on its position?

例如在57896中,取决于任何两位数的位置它必须被交换。     像第一个位置,第三个或第二个,第五个,然后打印交换的否..

1 个答案:

答案 0 :(得分:1)

你可以用数字方式做到这一点,这比进出字符串"要快得多。我将通过交换12345中的2和5进行工作,并且希望您可以概括该方法。用交换为d的数字表示原始数字和数字之间的差异。

  1. 计算要交换的两位数之间的差异。在您的情况下,5 - 2 = 3.请仔细注意标志惯例。

  2. 由于2位于1000的位置,5位于单位位置,因此差异d将为3 * 1000 - 3 * 1 = 2997.注意,第二学期与第一学期相反。

  3. 将其添加到原始号码以获取结果。

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