超级无敌简单题(鸽子数)

2023-11-05

欢迎访问https://blog.csdn.net/lxt_Lucia~~

宇宙第一小仙女\(^o^)/~~萌量爆表求带飞=≡Σ((( つ^o^)つ~ dalao们点个关注呗~~

 

----------------------------------------我只是一条可爱哒分界线-------------------------------------------

 

一、问题:

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,则为鸽子数。

定义1是第一个鸽子数,问第k个鸽子数是多少。

 

三、思路:

这个题很容易T,两个思路:

1)暴力。将前150000个鸽子树打出来,求第 n 个直接输出a [ n ] 。可以过,但是如果全打出来初始化数组里代码长度会超。

2)先判前810个再操作。假设一个数是最大的十位数,即9999999999,它的平方和是810,可以先判 1 - 810 中有哪些数字为鸽子数(害怕.jpg就判1000个也行)。接下来对每个数进行第一次操作,结果也一定在810以内,直接判断是否为鸽子数即可,若第一次操作后为鸽子数,则该数操作下去一定也是鸽子数。

注意:有个小技巧,若出现{ 4,16,20,37,32,58,89,145}这几个数,一定不是鸽子数。可以直接判断是否有4出现,有4出现一定不为鸽子数。

 

四、代码:

 思路一:暴力

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define read(x) scanf("%d", &x)
#define fori(a,b) for(int i=a; i<=b; i++)

using namespace std;
typedef long long LL;

int main()
{
    int a[150010],T,n,sum,cnt=0;
    a[++cnt] = 1;
    fori(2, 1050000)
    {
        n=i;
        while(n!=1 && n!=4)
        {
            sum=0;
            while(n)
            {
                sum += (n%10)*(n%10);
                n /= 10;
            }
            n = sum;
        }
        if(n == 1)
            a[++cnt] = i;
        if(cnt == 150000)
            break;
    }
    read(T);
    while(T--)
    {
        read(n);
        printf("%d\n",a[n]);
    }
    return 0;
}

思路二:先判再操作:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define read(x) scanf("%d", &x)
#define fori(a,b) for(int i=a; i<=b; i++)

using namespace std;
typedef long long LL;

int mark[1005];

int test(int k)
{
    int cnt = 0;
    while (k != 1 && cnt < 1000)
    {
        int tmp = 0;
        while (k != 0)
        {
            tmp += (k % 10) * (k % 10);
            k /= 10;
        }
        k = tmp;
        cnt++;
    }
    return k==1;
}

int a[150005];

int main()
{
    int T, n, k, j=0;
    fori(0, 999)
        if(test(i))
            mark[i] = 1;
    fori(1, 149999)
    {
        k = j;
        int tmp = 0;
        while(k != 0)
        {
            tmp += (k % 10) * (k % 10);
            k /= 10;
        }
        if(mark[tmp]==1)
        {
            a[i] = j;
            i++;
        }
        j++;
    }
    read(T);
    while(T--)
    {
        read(n);
        printf("%d\n",a[n]);
    }
    return 0;
}

 

------------------------------------------我也是有底线的----------------------------------------------------

 

欢迎访问https://blog.csdn.net/lxt_Lucia~~

宇宙第一小仙女\(^o^)/~~萌量爆表求带飞=≡Σ((( つ^o^)つ~ dalao们点个关注呗~~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

超级无敌简单题(鸽子数) 的相关文章

  • 用java做打字训练测试软件,《打字训练测试软件-Java课程设计》.doc

    PAGE PAGE 3 程序设计实践 题目 打字训练测试软件 学校 陕西工业学院 学院 信息学院 班级 信管12 2 学号 201213156619 姓名 刘克豪 2014 年 11 月 09 日 基础类 IO流与异常处理程序设计 一 实践
  • linux如何查看所有的用户、用户组、密码

    linux如何查看所有的用户和组信息 百度经验https jingyan baidu com article a681b0de159b093b184346a7 html linux添加用户 用户组 密码 百度经验https jingyan
  • 【pandas】(六)增删改查

    文章目录 一 增加数据 1 1 增加一行 1 2 增加一列 1 3 pd concat 拼接数据 1 objs Series DataFrame或Panel对象的 序列或映射 2 axis 0 1 默认为0 纵向拼接 3 join inne
  • IOS技术分享

    前言 最近对 WebRTC iOS 端源码进行了下载和编译 网上针对 WebRTC iOS 端的编译文章基本都是几年前的 有些地方已经不适用于最新版的 WebRTC 的编译 简单记录下载 编译的过程 以 M93 版本为例 编译环境 硬件 M
  • Android购物车效果实现(RecyclerView悬浮头部实现)

    刚开始看购物车效果觉得挺复杂 但是把这个功能拆开来一步一步实现会发现并不难 其实就涉及到 ItemDecoration的绘制 recyclerview的滑动监听 贝塞尔曲线和属性动画相关内容 剩下的就是RecyclerView滑动和点击时左
  • Xshell6和Xftp提示“要继续使用此程序,您必须应用最新的更新或使用新版本“

    Xshell6和Xftp提示 要继续使用此程序 您必须应用最新的更新或使用新版本 使用二进制编辑器修改Xshell和Xftp的nslicense dll文件 如sublime Txt编辑器等 1 分别进入Xshell和Xftp的安装路径下
  • torch.autograd.grad求二阶导数

    1 用法介绍 pytorch中torch autograd grad函数主要用于计算并返回输出相对于输入的梯度总和 具体的参数作用如下所示 torch tril input diagonal 0 out None longrightarro
  • C语言:求斐波那契数列前n项的和

    include
  • 经典卷积神经网络——resnet

    resnet 前言 一 resnet 二 resnet网络结构 三 resnet18 1 导包 2 残差模块 2 通道数翻倍残差模块 3 rensnet18模块 4 数据测试 5 损失函数 优化器 6 加载数据集 数据增强 7 训练数据 8
  • linux安装python3以及pip过程,遇到的错误处理

    需要自己搭建环境 没想到的是基本的安装python3过程过程就踩了很多坑 希望对别人有帮助 参考 https www centoschina cn course config 11027 html 1 下载相应python3 7解释器htt
  • Unity—3D数学基础

    今天用了小半天时间初步了解3D数学基础 明天开始进入unity游戏脚本编写 每日一句 人间骄阳正好 风过林梢 彼时我们正当年少 目录 3D坐标系 全局 世界 坐标系 局部 模型 物体 坐标系 相机坐标系 屏幕坐标系 向量 向量的运算 Vec
  • div滚动到顶部或者底部触发分页查询方法

    如聊天界面 滚动到顶部触发分页 div标签里添加滚动事件 scroll passive getScrollUser event 方法 getScroll event if event target scrollTop 0 this chat
  • 6.824分布式

    MapReduce 例子加深理解 你的工作是实现一个分布式的MapReduce 包括两个程序 master 和 worker 只有一个master进程 以及 一个或多个worker进程并行执行 在真实的系统中 工作人员将在许多不同的机器上运
  • 【安全工具】Web漏洞扫描十大工具

    Web漏洞扫描十大工具 Acunetix Web Vulnerability Scanner 简称AwVS AwVS是一款知名的Web网络漏洞扫描工具 它通过网络爬虫测试你的网站安全 检测流行安全漏洞 a 自动的客户端脚本分析器 允许对Aj
  • 关于springBoot如何配置双数据源

    前言 本文采用springBoot 配置类的方式简单配置Mysql PostgreSql双数据源 1 首先导入需要的pom依赖
  • 配置测试

    1 配置测试 configuration testing 配置测试是指使用各种硬件来测试软件运行的过程 2 基于Windows的PC机包括 个人计算机 部件 系统主板 内部板卡和其他内部设备 外设 接口 可选项和内存 设备驱动程序 3 配置
  • 轻松理解转置卷积(transposed convolution)或反卷积(deconvolution)

    本译文很大程度上保留了原文原貌 并添加了细节便于理解 各种指代 在CNN中 转置卷积是一种上采样 up sampling 的常见方法 如果你不清楚转置卷积是怎么操作的 那么就来读读这篇文章吧 本文的notebook代码在Github 上采样
  • Redis——数据结构介绍

    Redis是一个key value的数据库 key一般是String类型 不过value的类型是多样的 String hello word Hash name Jack age 21 List A gt B gt C gt D Set A
  • SaltStack 自动化运维详解

    一 自动化运维工具对比 使用所需软件配置单个服务器是一项相当简单的任务 但是 如果许多服务器需要安装相同或相似的软件和配置 则该过程将需要大量的工时才能完成 这会耗尽您本已紧张的资源 如果没有某种形式的自动化 这项任务几乎无法完成 考虑到这

随机推荐

  • 关于SpringMVC返回date的格式问题

    Spring 项目中 java的util date和java time类型的日期 返回到前端的时候 默认的序列化方式显示的是标准格式 为了能够正确的显示想要的时间 可以使用jackson指定时间的格式 访问我的个人网站获取更多文章 数据库的
  • 汽车的操作系统AUTOSAR

    汽车软件开发autosar 01汽车相关知识 汽车发展三大趋势 电动化 智能化 网联化 1 电动化 底层支撑 网联化的驱动力 2 智能化 人工智能借助软硬融合带来功能升级 体验升级 安全升级 3 网联化 5G的应用场景 让汽车与人 车 物的
  • golang实现p2p之UDP打洞

    当今互联网到处存在着一些中间件 MIddleBoxes 如NAT和防火墙 导致两个 不在同一内网 中的客户端无法直接通信 这些问题即便是到了IPV6时代也会存在 因为即使不需要NAT 但还有其他中间件如防火墙阻挡了链接的建立 目前部署的中间
  • spring boot毕业生跟踪调查管理系统 毕业设计源码论文+答辩PPT

    答辩PPT 论文 springboot毕业生跟踪调查管理系统 摘 要 信息化社会内需要与之针对性的信息获取途径 但是途径的扩展基本上为人们所努力的方向 由于站在的角度存在偏差 人们经常能够获得不同类型信息 这也是技术最为难以攻克的课题 针对
  • CF 1843F2 - Omsk Metro (hard version)

    CF 1843F2 Omsk Metro hard version 题目描述 给定 n n n 个节点的有根树 根节点为 1 1 1 每个节点上有权值 0
  • asp.net中,<%#%>,<%=%>和<%%>分别是什么意思,有什么区别

    在asp net中经常出现包含这种形式的html代码 总的来说包含下面这样几种格式 一 这种格式实际上就是和asp的用法一样的 只是asp中里面是vbscript或者javascript代码 而在asp net中是 net平台下支持的语言
  • 使用ScriptableObject代替部分配置表的坑点

    1 使用ScriptableObject代替部分配置表的坑点 2 加载配置内存过大问题 3 URP的UI在Android模型器下比在真机上暗 4 Unity在Windows上第一次运行Play启动很慢 5 如何正确卸载UnityWebReq
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • 【2023】数据库sql增删改查执行命令汇总(配合详细举例)

    一 单表查询 数据查询语言 专门用于查找表中的数据 select from emp 关键字 select from 表名 查询表中的所有数据 source 导入文件的文件地址 文件名称 导入dump数据 结尾不能加 号 mysql的数据备份
  • 【git】全局配置和单个仓库的用户名邮箱配置

    Git全局配置和单个仓库的用户名邮箱配置 学习git的时候 大家刚开始使用之前都配置了一个全局的用户名和邮箱 git config global user name github s Name git config global user
  • 领导力大挑战

    author skate time 2012 10 13 在实施Scrum的项目中 Scrum Master对于团队而言是相当关键的 担当着推动整个团队完成产品所有者既定目标的角色 Scrum Master的主要工作是替团队扫清前进的障碍
  • 树莓派交叉编译如何处理软连接

    软链接有点类似windows的快捷方式 添加软连接 ln s libfilename so 2 5 libfilenameso ln是指令 s是参数 so 2 5是要被链接的文件 so是软连接名字 生成硬链接 去掉 s
  • STM32编译错误

    output test axf Error L6218E Undefined symbol SystemInit referred from startup stm32f10x hd o Not enough information to
  • 现代计算机从0到1:冯·诺依曼计算机

    最近打算开始写博客 在想一开始该写什么好呢 突然灵光一现 关于计算机当然就是现代计算机之父 我们今天就来聊一下现代计算机之父 约翰 冯 诺依曼 John Von Nouma 1903 1957 美藉匈牙利人 1903年12月28日生于匈牙利
  • Linux驱动开发 通过字符设备驱动分步注册方式编写LED驱动

    通过字符设备驱动分步注册方式编写LED驱动 完成设备文件和设备的绑定 head h ifndef HEAD H define HEAD H typedef struct unsigned int MODER unsigned int OTY
  • STM32实战总结:HAL之IAP

    我们学习单片机一般都是从51开始的 51单片机烧录程序通常是使用烧录软件如STC ISP 这种方式 通过串口连接单片机 选择一个合适的波特率就可以烧录了 后来学习STM32 编程时使用KEIL软件自带的下载按钮就能下载程序 方便了不少 但需
  • ssh 连接到docker内,环境变量发生变化的解决方法(改)

    参考 https blog csdn net m0 59029800 article details 125479518 上述方法的问题 环境变量中存在空格时出错 解决方法 更改字段分隔符 使之仅仅遇到换行时分割 OLD IFS IFS n
  • 19、ddt数据驱动测试

    背景 设计测试用例是 有些测试用例只是参数数据输入不一样而已 比如登录时 需要经常切换账号 而操作基本是一样的 如果用例重复去写操作过程会导致很多冗余的代码 1 安装ddt pip install ddt 2 原理 测试数据为多个字典的li
  • UVA 1601 The Morning after Halloween

    https vjudge net problem UVA 1601 题目 你在游乐场的鬼屋里当操作员 专门控制鬼屋里的机器人 某日没事干的出题人把这些机器人搬到了其他地方 你需要在最短的时间内遥控机器人让他们回到原位 所有机器人都可以同时在
  • 超级无敌简单题(鸽子数)

    欢迎访问https blog csdn net lxt Lucia 宇宙第一小仙女 o 萌量爆表求带飞 o dalao们点个关注呗 我只是一条可爱哒分界线 一 问题 Description 通常来说 题面短的题目一般都比较难 所以我要把题面