zoukankan      html  css  js  c++  java
  • HDU 1282 回文数猜想

    解题报告:

    有一种猜想,即任意的一个数,将它和它的倒序数相加,经过若干次操作之后,一定能得到一个回文数,倒序数是指把这个数倒过来表示的数字,如123的倒序数就是321,现在要你判断给定的一个n 要经过多少次操作才能得到一个回文数,并且输出操作的过程,即输出每次相加后得到的结果,所以只要写两个函数,一个是用来判断这个数是否是回文数,另一个是用来判断这个数的倒序数,就OK了。

     1 #include<cstdio>
     2 bool judge(int k) {          //判断是不是回文数 
     3     int i = 0,x[10005];      
     4     while(k) {            //将数先存到数组里面 
     5         x[i++] = k%10;
     6         k/=10;
     7     }
     8     for(int j = 0;j<i;++j)
     9     if(x[j] != x[i-j-1])
    10     return false;
    11     return true;
    12 }
    13 int oper(int k) {       //求数k的倒序数 
    14     int ans = 0;
    15     while(k) {
    16         ans *= 10;
    17         ans += (k%10);
    18         k /= 10;
    19     }
    20     return ans;
    21 }
    22 int main() {
    23     int n,jilu[1005];
    24     while(scanf("%d",&n)!=EOF) {
    25         jilu[0] = n;   //将原来的数先存起来 
    26         int f = 0;     //计数器 
    27         while(!judge(n)) {
    28             n += oper(n);
    29             jilu[f+1] = n;
    30             f++;
    31         }
    32         printf("%d
    %d",f,jilu[0]);
    33         for(int i = 1;i<=f;++i)
    34         printf("--->%d",jilu[i]);
    35         printf("
    ");
    36     }
    37     return 0;
    38 }
    View Code
  • 相关阅读:
    Oracle自增ID实现
    mysql5修改用户密码及远程访问
    关于线程中修改UI的控件属性
    Javascript 保持浮动位置
    Linq To Entity 查询条件扩展
    反转字符顺序
    VB6.0 二分法解方程
    支持库:FileHelper
    C# 计算加减乘除
    Linq.GroupBy使用示例
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3198295.html
Copyright © 2011-2022 走看看