C/C++蓝桥杯之回文数

C语言程序实现判断一个数是否能通过最多30次加法操作变成交换前后读取相同的数,如56+65=121。

若一个数(首位不为0)从左向右与从右向左读都一样,则称之为回文数。

例如:给定一个十进制数56,若将56加65(即把56从右左读),则得到121是一个回文数。

如果在30步以内得到回文数,则输出步数,否则输出-1

回文数的判断函数:

bool huiwenshu(long int n)
{
	long int m=0;
	long int k;
	k= n;
	while (k > 0)//将n倒置后保存在m中
	{
		m = m * 10 + k % 10;
		k/= 10;
	}
	if (m == n)
		return 1;
	else
		return 0;
}

实现代码:

#include<stdio.h>
#include<stdbool.h>
int main()
{
	long int num;
	int count = 0;
	scanf("%ld", &num);
	long int m = 0;
	long int k;
	k = num;
	while (k > 0)//将num倒置后保存在m中
	{
		m = m * 10 + k % 10;
		k /= 10;
		count += 1;
	}
	if (count>=30)
		printf("-1");
	else
		printf("%d",count);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清潇沈默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值