输入一个正整数,要求以相反的顺序输出该数。用递归方法实现。(输出一个数的回文数)

输入一个正整数,要求以相反的顺序输出该数。用递归方法实现。
**输入格式要求:"%d" 提示信息:"Enter number:"
**输出格式要求:"%d"
程序运行示例如下:
Enter number:35567899
99876553
#include<stdio.h>
int main()
{
	printf("Enter number:");
	int x = 0;
	scanf("%d", &x);
	int sum = 0;//x相反顺序
	while (x != 0)当最后一位被取走后,x=0,此时终止循环
	{
		sum = sum * 10 + x % 10;//x%10表示每次取x的最后一位
            //取走最后一位后,被取走的那个数需要逐步上升到最高位,故每次要乘10
		x /= 10;//x的最后一位被取走,需要去掉最后一位
	}
	printf("%d", sum);
	return 0;
}

如果sum=sum*10+x%10不好理解可以换成以下

while(x!=0)
{
sum*=10//每次添加数前,需要将已添加的数上移1位
sum+=x%10
x/=10;
}

比如输入12345,sum*=10=0,sum+=12345%10=5,x/=10=1234

上移一位,sum=50,sum+x%10=54,如此往复就得到最终结果了

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值