C语言数字反转,怎么循环的,能给出每一步的结果吗
C语言数字反转,怎么循环的,能给出每一步的结果吗#include<stdio.h>intmain(void){inta,b=0;scanf("%d",&a);while(...
C语言数字反转,怎么循环的,能给出每一步的结果吗#include <stdio.h>
int main(void)
{
int a, b = 0;
scanf("%d", &a);
while (a)
{
b = b * 10 + a % 10;
a = a / 10;
}
printf("%d", b);
} 展开
int main(void)
{
int a, b = 0;
scanf("%d", &a);
while (a)
{
b = b * 10 + a % 10;
a = a / 10;
}
printf("%d", b);
} 展开
2个回答
展开全部
要先理解方法,待翻转的数字都是整数
方法有很多种的,字符串,栈,队列等等都可以
这里采用的是最朴实的计算的方法
假设待翻转的数字是123456
那我们的目标数字是654321
怎么构造654321这个整型数字呢
正常思维应该是从两端开始考虑吧, 如果从1开始构造
我们要从123456这个数字中获取1
是不是很麻烦?
要是从6开始呢
直接除以10取余数, 也就是用123456 % 10 得到的不就是6么
然后是5 显然我们需要把6去掉 得到 12345
然后 12345 % 10 得到了5
依次类推啊
然后是构造654321 最开始是6 怎么把5加上去呢
6*10 +5
那如何开始循环呢?
考虑初始值是0 0*任何数都是0 然后加上初始数字就开始了啊
考虑到题主可能是初学者, 注意几个点
While(a) 只要a大于0 都为真
“ / ”得到的是最大整数商,余数部分不考虑
“ % ”得到的仅仅是余数
感受C语言的魅力吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询