解题思路:

注意事项:

参考代码:

#include<iostream>

#include<iomanip>

#include<cmath>

#include<algorithm>

using namespace std;

int main(void){

long long n;// 使用long long避免超出int范围(题目范围是-1e9~1e9,long long更安全)

cin>>n;

int sign=1;//记录符号 正数为1 

if(n<0){

sign=-1;//负数为-1 

n=-n;//负数转正数 

}

long long fz=0;//存储反转数 

while(n>0){

fz=fz*10+n%10;// 提取最后一位数字,并累加到反转数中

n/=10;//去掉最后一位数字

}

cout<<fz*sign;//恢复符号并输出

    return 0;  

}

/*

循环轮次 进入循环时的 n 进入循环时的 fz 执行fz = fz * 10 + n % 10 执行n /= 10后 n 的值 本轮作用总结

第 1 轮 123 0 0*10 + 123%10 = 0 + 3 = 3 123/10 = 12 取出最后一位 3,拼到 fz 里(fz=3)

第 2 轮 12 3 3*10 + 12%10 = 30 + 2 = 32 12/10 = 1 取出最后一位 2,拼到 fz 里(fz=32)

第 3 轮 1 32 32*10 + 1%10 = 320 + 1 = 321 1/10 = 0 取出最后一位 1,拼到 fz 里(fz=321)

结束 0 321 循环条件n>0不满足,退出 - 最终 fz=321,完成反转

*/


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论