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
    暴力打表即可 
    在纸上进行对1-9的模拟  发现4会进入死循环 也就是到4时必不可能是
    #include<bits/stdc++.h>
    using namespace std;
    //input by bxd
    #define rep(i,a,b) for(int i=(a);i<=(b);i++)
    #define RI(n) scanf("%d",&(n))
    #define RII(n,m) scanf("%d%d",&n,&m)
    #define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
    #define RS(s) scanf("%s",s);
    #define LL long long
    #define REP(i,N)  for(int i=0;i<(N);i++)
    #define CLR(A,v)  memset(A,v,sizeof A)
    //////////////////////////////////
    #define N 150000+5
    int ans[N];
    bool judge(int x)
    {
        while(x!=1&&x!=4)
        {
            int sum=0;
            while(x)
            {
                sum+=(x%10)*(x%10);
                x/=10;
            }
            x=sum;
        }
        return x==1;
    }
    void get(void)
    {
        int cnt=1;
        ans[1]=1;
        int i=2;
        while(cnt<=150000)
        {
            if(judge(i))
                ans[++cnt]=i;
            i++;
        }
    }
    
    int main()
    {
        get();
        int q;
        RI(q);
        while(q--)
        {
            int x;
            RI(x);
            printf("%d
    ",ans[x]);
        }
    }
     
     
     
     
  • 相关阅读:
    你若不努力,整个世界将与你无关
    【规范】yii2 resetful 授权验证
    DFT到FFT的理解
    【统计学】6.统计量及其抽样分布
    【统计学】5.概率与概率分布
    【统计学】4.数据的概括性度量
    【统计学】3.数据的图表展示
    【统计学】2.数据的搜集
    【统计学】1.导论
    小程序API(1.19)利用API函数设置标签栏的方法
  • 原文地址:https://www.cnblogs.com/bxd123/p/10560285.html
Copyright © 2011-2022 走看看