一、问题:
程序每次读入一个正三位数,然后输出逆序的数字。注意,当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
二、分析:
问题的难点,在于如何分离这个正三位数的个位、十位、百位,那么根据题意,我们可以设这个正三位数为m,分析如下:个位:m % 10取余,获得个位;
百位:m / 100取商,获得百位;
十位:方法1:m / 10 % 10,先取商,再取余,获得十位;
方法2: m % 100 / 10,先取余,再取商,获得十位;
最后输出 个位 * 100 + 十位 *1 0 + 百位 即可。个位:ones
十位:tens
百位:hundreds
C语言如下:
#include int main()
{
int m = 0;
scanf("%d", &m);
int ones = m % 10;
int tens = m % 100 / 10; // OR int tens = m / 10 % 10;int hundreds = m / 100;
int n = ones * 100 + tens * 10 + hundreds;
printf("%d", n);
return 0;
}
Python如下:
m = int(input())
ones = m % 10
tens = m % 100 // 10
# OR tens = m // 10 % 10
hundreds = m // 100
n = ones * 100 + tens * 10 + hundreds
print(n)
/ classic division returns a float
// floor division discards the fractional part
所以,此处使用 floor division // 。
总结:Python不需要声明类型,代码更少,写起来比C舒服多了。