Skip to content

Latest commit

 

History

History
22 lines (19 loc) · 1.06 KB

Readme.md

File metadata and controls

22 lines (19 loc) · 1.06 KB

练习5

题目

5、输入一个数,将这个数的奇数位重新组合成一个数,其中高位数依然处于高位,
低位数处于低位。
实例:  input:345389
        output:439
int Getnum(int input, int output)
{

}
void main()
{

}

解题思路

  1. scanf("%d",&input):如果入力的数字不在INT_MIN到INT_MAX (-2^31 (-2,147,483,648) ~ 2^31-1 (2,147,483,647))之间,scanf会自动转化入力数字到这个范围内。
  2. int Getnum(int input, int output):题目给出的函数原型第二个参数是int型,是一个值传递的参数,是没办法把计算几个传递出来的。那么只能通过返回值将结果传出来了。
  3. 看题目的实例,发现奇数位的计算是从低位开始的。因此考虑使用input%10的方式依次从低位开始取出奇数位,这其中要注意两点,第一,每取出一次奇数位,下一个奇数位的单位应当进十(unit *= 10; )。第二,入力只有一位的情况和入力的最高位需要单独考虑。
  4. 需要考虑正数和负数的情况。