zoukankan      html  css  js  c++  java
  • ACM HDU 1282 回文数猜想(简单水题)

    回文数猜想

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 1524    Accepted Submission(s): 945


    Problem Description
    一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数。任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数,则重复上述步骤,一直到获得回文数为止。例如:68变成154(68+86),再变成605(154+451),最后变成1111(605+506),而1111是回文数。于是有数学家提出一个猜想:不论开始是什么正整数,在经过有限次正序数和倒序数相加的步骤后,都会得到一个回文数。至今为止还不知道这个猜想是对还是错。现在请你编程序验证之。
     

    Input
    每行一个正整数。
    特别说明:输入的数据保证中间结果小于2^31。
     

    Output
    对应每个输入,输出两行,一行是变换的次数,一行是变换的过程。
     

    Sample Input
    27228 37649
     

    Sample Output
    3 27228--->109500--->115401--->219912 2 37649--->132322--->355553
     

    Author
    SmallBeer(CML)
     

    Source
     

    Recommend
    lcy
     
     
    #include<stdio.h>
    int change(int n)
    {
    int a[20];
    int k=0;
    while(n!=0)
    {
    k
    ++;
    a[k]
    =n%10;
    n
    /=10;
    }
    int res=0;
    for(int i=1;i<=k;i++)
    {
    res
    *=10;
    res
    +=a[i];
    }
    return res;
    }
    int main()
    {
    int n,i,cnt;
    int result[100];
    while(scanf("%d",&n)!=EOF)
    {
    cnt
    =0;
    result[
    0]=n;
    while(n!=change(n))
    {
    n
    =n+change(n);
    result[
    ++cnt]=n;
    }
    printf(
    "%d\n",cnt);
    for(i=0;i<cnt;i++)
    printf(
    "%d--->",result[i]);
    printf(
    "%d\n",result[cnt]);
    }
    return 0;
    }

  • 相关阅读:
    阿里架构师说Kafka工作原理归纳,实践通俗易懂!我咋不信呢
    2020做Java的都看这篇文章,面试一次过、升职加薪,赶快来Get
    IDEA最牛配置,众享丝滑
    在IDEA中搭建Java源码学习环境并上传到GitHub上
    Linux基本命令
    正向代理与反向代理
    Spring Boot中使用MyBatis详解
    ftp命令详解
    CentOS7设置中文字符集
    CentOS7计划任务crontab
  • 原文地址:https://www.cnblogs.com/kuangbin/p/2129439.html
Copyright © 2011-2022 走看看