- 解题思路整理:
1.问题表现形式:输入一个正三位整数,输出其逆序数。
2.解题套路:灵活使用/与%的运算符特征
/ : 取其整数部分
%:取其余数部分
e.g :程序每次读入一个正3位数,然后输出按位逆序的数字。
注意:当输入的数字含有结尾的0时,输出不应带有前导的0。
比如输入700,输出应是7。
输入格式:
每个测试是一个3位的正整数。
输出格式:
输出按位逆序的数。
输入样例:
123
输出样例:
321
本题的关键点:分离各位数
#include<stdio.h>
int main(void)
{
int num;//由题可知,只能定义一个正三位整数
scanf("%d", &num);//先将这个正三位整数输入
//对这个三位数进行拆分
int a, b, c;//a:百位数,b:十位数,c:个位数
//step 1:拆分百位数a
a = num / 100;//利用:"/"运算只取整数的特点
//step 2:拆分个位数c
c = num % 10;//利用:"%"运算只取余数的特点
//step 3:拆分十位数b
//b = (num % 100) / 10;//先用"%"取余数,再用"%"取整数 //method 1
b = (num / 10) % 10;//先用"/"取整数,再用"%"取余数 //method 2
printf("%d\n", 100 * c + 10 * b + a);
return 0;
}
总结:(实际问题中无需运用以下结论,只需取一个特例试验即可)
1.分离首位数的方法:直接 / (10^所在位数)
e.g 1: 712 / 100;(100 = 10^3)
2.分离末位数的方法:直接 % (10^高一格的位数)
e.g 2:712 % 10 = 2
3.分离中间数的方法:取特例实验