zoukankan      html  css  js  c++  java
  • 鸽子数(快乐数)

    Problem Description

    通常来说,题面短的题目一般都比较难,所以我要把题面写得很长很长。
    通常来说,题面短的题目一般都比较难,所以我要把题面写得很长很长。
    通常来说,题面短的题目一般都比较难,所以我要把题面写得很长很长。
    鸽子数字由以下过程定义:从任何正整数开始,将数字替换为其各个数位的平方和,并重复该过程,直到该数字等于1。如果不能,则这个数字不是鸽子数。
    例如7是鸽子数,因为7->49->97->130->10->1。(7*7=49,4*4+9*9=97,9*9+7*7=130....如此类推)
    显然1是第一个鸽子数。
    有Q个询问,每个询问给出一个数k,你需要输出第k个鸽子数。

    Input

    第一行一个Q,代表询问的个数(Q<=100000)
    接下来Q行,每行一个数字k(k<150000)

    Output

    每行输出一个数,代表第k个鸽子数

    Sample Input

    
     

    2 1 2

    Sample Output

    
     

    1 7

    ps:开始死循环没找不是鸽子数在哪里断开。后来发现许多不是鸽子数最后都会到4. 

    2->4->16->37->58->89->145->42->20->4

    5->25->29->85->89->....->4

    6->36->45->41->17->50->25->...->4

    由此得出ac代码。

    鸽子数也叫快乐数。

    如果以4的话会超时。次数大于20次就可以了。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cmath>
    #define N 150010
    
    using namespace std;
    typedef long long ll;
    ll ans[N],x=1,y;
    
    void fun(){
        int i;
        for(i=1;x<150000;i++){
            ll a=i;
            ll k=0;
            int cnt=0;
            while(1){
                if(cnt>=20) break;
                while(a){
                   ll b=a%10;
                   k=k+b*b;
                   a/=10;
                }
                if(k==1){
                    ans[x++]=i;
                    break;
                }
                a=k;
                cnt++;
                k=0;
            }
        }
    }
    int main()
    {
        fun();
        int q,i;
        cin>>q;
        for(i=0;i<q;i++){
            int k;
            scanf("%d",&k);
            printf("%lld
    ",ans[k]);
        }
        return 0;
    }
    
  • 相关阅读:
    Delphi中Format与FormatDateTime函数详解
    常用的日期时间函数
    100m和1000m网线的常见制作方法
    Delphi cxGrid –--> RecordIndex out of Range
    局域网共享需要密码
    提高AdoQuery的速度
    string literals may have at most 255 elements
    001-project基本使用
    Java-idea-创建maven项目,部署项目,部署服务器,简单测试
    003-spring结合java类调用quartz
  • 原文地址:https://www.cnblogs.com/skyleafcoder/p/12319521.html
Copyright © 2011-2022 走看看