likangxin123 2023-07-02 12:49 采纳率: 33.3%
浏览 45
已结题

帮帮我,题好难,不会

题目描述
一个数字无论从前往后还是从后往前都是一样的,这就是回文数。例如,1234321是回文数。

非回文数可以通过一系列操作与回文数配对。首先,将非回文数反转,并将结果添加到原始数字中。如果结果不是回文数,则重复此操作,直到得到回文数。

例如,从67开始,我们可以分两步得到回文数:67 + 76 = 143 , 143 + 341 = 484。

给定任何正整数N,你应该可以找到它的成对回文数和找到它所花费的步数。

输入描述:
输入包含一个测试用例。每种情况由两个正数N和K组成,其中N (N


1
0
16
10
16
)是初始数,K(K

≤100)是最大步数。这两个数字之间用一个空格隔开。

输出描述:
对于每个测试用例,输出两个数字,每行一个。第一个数字是成对的回文数N,第二个数字是找到回文数所需的步数。

如果K步后没有找到回文数,则只输出第K步得到的数和K。

输入数据 1
67 3
输出数据 1
484
2
输入数据 2
69 3
输出数据 2
1353
3

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2023-07-02 14:11
    关注

    供参考:

    #include <stdio.h>
    int fun(int n)  // 逆序一个数
    {
        int ret = 0;
        while (n){
            ret = ret * 10 + n % 10;
            n /= 10;
        }
        return ret;
    }
    int main()
    {
        int N, K, k = 0;
        scanf("%d%d", &N, &K);
        while (1) {
            if (N == fun(N))// 判断是否是回文数
                break;
            else{  // 将非回文数反转,并将结果添加到原始数字中
                N += fun(N);
                k++;
            }
            if (k == K)  // 如果K步后没有找到回文数,跳出
                break;
        }
        printf("%d\n%d\n", N, k);// 输出
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月10日
  • 已采纳回答 7月2日
  • 创建了问题 7月2日

悬赏问题

  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译
  • ¥100 对反编译和ai熟悉的开发者。
  • ¥15 带序列特征的多输出预测模型
  • ¥15 Python 如何安装 distutils模块
  • ¥15 关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行
  • ¥15 资源泄露软件闪退怎么解决?
  • ¥15 CCF-CSP 2023 第三题 解压缩(50%)
  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现