很多新手这一题都做不出来,因为他们只会直接倒序输出或者倒叙后挨个判断如果不是0就输出,其实这题需要另外一种倒序输出方式:
int sum=0;
while (n>0){
sum=sum*10;
sum=sum+n%10;
n=n/10;
}
其实这里你可以模拟一下,如果这个数是910:
1.因为sum初始化为0,sum先*10,还是0;
2.sum+910%10=0(“%”叫取模,意思是得出这个数除另一个数的余数;
3.sum*10=0;
4.sum+91%10=1,91/10=9(这是int类型,没有小数);
5.sum*10=10;
6.sum+9%10=19,9/10=0;
7.为达到条件:“n>0”停止循环。
这样910倒过来就是19是不是?
如果是负数,只要将先输出负号在求出n的绝对值就可以了
AC代码:(复制了这辈子别想拿奖)
#include <bits/stdc++.h>
using namespace std;
int main(){
int n, sum = 0;
cin >> n;
if (n<0)
cout<<"-";
n=abs(n);
while (n>0){
sum=sum*10;
sum=sum+n%10;
n=n/10;
}
cout<<sum;
return 0;
}