#航电oj:回文数猜想

该博客探讨了如何判断和生成回文数。通过C++代码实现了一个算法,该算法从输入的整数开始,不断加上其回文形式,直到找到回文数为止。文章强调了解题时仔细阅读题目避免陷阱的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**

航电oj:回文数猜想

**

#题目描述
在这里插入图片描述

#仔细看题 这个题是只有整数的 没有其他字符 所有不必要用字符数组来实现
#求数的回文 就是除10 取余 在另外一面垒起来就行。

#知识点
回文数

#代码

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
int num,temp;
int data[1000];
bool bp(int x)//判断回文
{
    int y = x;
    int sum,cnt;
    sum = 0;
    while(x != 0)
    {
        cnt = x % 10;
        sum = 10 * sum + cnt;
        x = x/10;
    }
    //cout << sum << endl;
    if(sum == y)
        return true;
    else
        return false;
}
int ark(int x)//返回回文
{
    int sum,cnt;
    sum = 0;
    while(x != 0)
    {
        cnt = x % 10;
        sum = 10 * sum + cnt;
        x = x/10;
    }
    return sum;
}
int main()//思想滑坡了  还以为要用数组来算 就没算 额(⊙﹏⊙)
{
    while(scanf("%d",&num)!=EOF)
    {
        //cout << bp(num) << endl;
        memset(data,0,sizeof(data));
        data[1] = num;
        int sizenum = 1;
        if(!bp(num))
        {
            for(int i=2;; i++)
            {
                num += ark(num);
                data[i] = num;
                sizenum = i;
                if(bp(num))//如果是回文就跳出
                    break;
            }
        }
        cout << sizenum - 1 <<endl;//这个数量是不算初始的数的 但输出又要输出初始的数
             for(int i=1; i<sizenum; i++)
        {
            cout << data[i] <<"--->";
        }
        cout << data[sizenum] <<endl;
    }
    return 0;
}

#总结
看见中文题要先仔细读题 一般都会有文字的坑 知道坑以后就是容易题了!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值