多重循环~数字反转
题目描述:
输入
输入共 1 行,一个整数N。
输出
输出共 1 行,一个整数,表示反转后的新数。
注:反转后首位不能为0
1 #include<stdio.h> 2 int main(){ 3 int N=0; //要反转的数字 4 int tem=0; //暂存取出来的末尾的数字 5 int M=0; //反转结果 6 int p; //用来存符号 7 scanf("%d",&N); 8 if(N<0){ 9 N=-N; 10 p=-1; 11 } 12 else{ 13 p=1; 14 } 15 while(N!=0){ 16 if(N/10>=1){ 17 tem=N%10; //每次取出的末尾的数字 18 N/=10; //取完后原数字去掉低位 19 //M=tem*10; 20 //printf("%d",M); 21 M=M*10+tem; 22 } 23 else{ //当数字被取到只剩一个位 24 M=M*10+N; //? 25 break; 26 } 27 } 28 printf("%d",M*p); 29 30 }
solution:
1 为避免负数计算过程中出现的:负负得正~将符号与数字分看,用p存储符号后将所有数都当作正数进入循环
2 为避免反转后首位为0~不可以得到一位低位就输出一位
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程