1094 谷歌的招聘 (20 分)

2023-11-03

2004 年 7 月,谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌(如下图)用于招聘。内容超级简单,就是一个以 .com 结尾的网址,而前面的网址是一个 10 位素数,这个素数是自然常数 e 中最早出现的 10 位连续数字。能找出这个素数的人,就可以通过访问谷歌的这个网站进入招聘流程的下一步。

prime.jpg

自然常数 e 是一个著名的超越数,前面若干位写出来是这样的:e = 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921... 其中粗体标出的 10 位数就是答案。

本题要求你编程解决一个更通用的问题:从任一给定的长度为 L 的数字中,找出最早出现的 K 位连续数字所组成的素数。

输入格式:

输入在第一行给出 2 个正整数,分别是 L(不超过 1000 的正整数,为数字长度)和 K(小于 10 的正整数)。接下来一行给出一个长度为 L 的正整数 N。

输出格式:

在一行中输出 N 中最早出现的 K 位连续数字所组成的素数。如果这样的素数不存在,则输出 404。注意,原始数字中的前导零也计算在位数之内。例如在 200236 中找 4 位素数,0023 算是解;但第一位 2 不能被当成 0002 输出,因为在原始数字中不存在这个 2 的前导零。

输入样例 1:

20 5
23654987725541023819

输出样例 1:

49877

输入样例 2:

10 3
2468024680

输出样例 2:

404

此题花费了我好长时间,只怪自己太菜,老是超时,找了很久,最后发现竟然是判断素数时超时,我的天,真的想打自己^-^

 

16分代码,正确的在下面
#include<iostream>
#include<string>
using namespace std;
int prim(int n)
{
    for(int i = 2;i < n;i++){  //超时
        if(n%i == 0){
            return 0;
        }
    }
    return 1;
}
int main()
{
    int l,k;
    char s[1001];
    cin >> l >> k;
    for(int i = 0;i < l;i++){
        cin >> s[i];
    }
    int flag = 0;
    for(int i = 0;i <= l-k;i++){
        int sum = 0;
        for(int j = 0;j < k;j++){
            int num = s[i+j] - '0';
            sum = sum + num;
            if(j != k-1) sum = sum*10;
        }
        //cout << sum << endl;
        if(prim(sum) == 1){
            for(int j = 0;j < k;j++){
                cout << s[i+j];
            }
            cout << endl;
            flag = 1;
            break;
        }
    }
    if(flag == 0){
        cout << "404" << endl;
    }
    return 0;
}

下面是正确代码,第一个做的比较麻烦,后来在网上找的题解,发现柳神的代码,好简洁.........,其中有些语句没学习过c++的同学可能不太懂,可以看下柳神写的《从放弃C语言到使用C++刷算法的简明教程v4.7》,她的个人博客https://www.liuchuo.net/333-3 下面是代码

#include<iostream>
#include<string>
using namespace std;
int prim(int n)
{
    if(n == 0 || n == 1) return 0;
    for(int i = 2;i*i <= n;i++){
        if(n%i == 0){
            return 0;
        }
    }
    return 1;
}
int main()
{
    int l,k,a;
    int flag = 0;
    string s,temp;
    cin >> l >> k;
    cin >> s;
    for(int i = 0;i <= l-k;i++){
        temp = s.substr(i,k);//截取i到k的字符 
        a = stoi(temp); //将string类型转化为int类型
        if(prim(a)){
            cout << temp << endl;
            flag = 1;
            break;
        }
    }
    if(flag == 0)
    cout << "404" << endl;
    return 0;
}
//如果stoi报错,未声明的话,可能是编译器不支持c++11,可以在网上找下解决方案,我用的是devc++编译
//的,其中在编译设置中加上-std=c++11就可以

麻烦的代码,也是上面16分的纠正后的

#include<iostream>
#include<string>
using namespace std;
int prim(int n)
{
    if(n == 0 || n == 1) return 0;
    for(int i = 2;i*i <= n;i++){
        if(n%i == 0){
            return 0;
        }
    }
    return 1;
}
int main()
{
    int l,k;
    char s[1001];
    cin >> l >> k;
    for(int i = 0;i < l;i++){
        cin >> s[i];
    }
    int flag = 0;
    for(int i = 0;i <= l-k;i++){
        int sum = 0;
        for(int j = 0;j < k;j++){
            int num = s[i+j] - '0';
            sum = sum + num;
            if(j != k-1) sum = sum*10;
        }
        //cout << sum << endl;
        if(prim(sum) == 1){
            for(int j = 0;j < k;j++){
                cout << s[i+j];
            }
            cout << endl;
            flag = 1;
            break;
        }
    }
    if(flag == 0){
        cout << "404" << endl;
    }
    return 0;
}

不敲了,今天最后一题,困死了,迷糊着写完这篇博客,睡觉去了........ 

 

 

 

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

1094 谷歌的招聘 (20 分) 的相关文章

  • c# --- 泛型解决输入和输出类型不确定问题

    一 背景 有这样一个需求 一个方法 他的返回值类型不确定 方法参数的类型不做要求 二 思考 返回值类型不确定 从继承的角度 所以类都是object的子类 返回object即可 但是这种方法是类型不安全的 需要进行类型转换 我们可以使用泛型解
  • HTML <small> 标签

    定义和用法
  • CUBLAS矩阵乘法

    include
  • Winsock属性 方法介绍

    本文章已收录于 Winsock是Mcrosoft windows提供的网络编程接口 它供了基于TCP IP协议接口实现方法 通过网络进行的数据通信 需要用地址来表示网络中的主机 TCP IP协议使用IP地址来作为主机的标识 实现的连接方式是
  • 关于connect: network is unreachable 问题的解决

    由于发现原创文章 在未署名作者及出处的情况下被转载 在以后所有的原创文章开头我都会写明作者和出处 希望朋友们以后在转载本博客原创博文时注意标明文章作者及出处 作者 liukun321 咕唧咕唧 原文出处 http blog csdn net
  • 牛客面试题库(9)

    请你说说索引怎么实现的B 树 为什么选这个数据结构 说到B 树 一般和B树做对比 都是多叉树 B 数组叶子结点存储数据 其他节点存储索引 而B树每个节点都存储数据 B 树叶子结点内通过单向链表连接 节点和节点之间通过双向链表连接 从磁盘IO
  • 匿名内部类的定义格式

    匿名内部类 1 使用条件 如果接口的实现类 或者父类的子类只需要使用唯一的一次 那么就可以省略该类的定义 改用匿名内部类 2 定义格式 接口名称 对象名 new 接口名称 覆盖重写所有抽象方法 分号不要忘 3 对匿名内部类的格式 new 接
  • springboot + mybatis启动时执行sql脚本

    目录 1 创建数据版本表 结构如下 2 创建HdVersion对象 3 创建执行sql的dao 4 创建dao对应的xml 5 创建sql执行器 实现ApplicationRunner 6 结语 背景 项目开发或发布阶段修改表结构 项目更新
  • 大数据平台测试-白盒测试静态方法解析(我奶奶都能看懂)

    软件测试从某种维度上分为黑盒测试和白盒测试 黑盒测试更多的是增啥改查 也就是功能测试 关于功能测试参考这里 增删改查测试场景 菜市场的大妈都能看懂 关于白盒测试的资料参考这里 白盒测试案例设计 我爷爷都能看懂 注意并不是说白盒测试一定就是要
  • 还不会python 实现常用的数据编码和对称加密?看这篇文章就够啦~

    前 言 相信很多使用 python 的小伙伴在工作中都遇到过 对数据进行相关编码或加密的需求 今天这篇文章主要给大家介绍对于一些常用的数据编码和数据加密的方式 如何使用 python 去实现 话不多说 接下来直接进入主题 1 base64
  • Unity—关节、布料、角色控制器、视频播放

    开学啦 接下来学习Unity的寻路系统和射线 结尾有彩蛋呦 每日一句 少年特有的放浪不羁是青春的定义 目录 关节 布料 视频播放 Character Controller组件 关节 铰链关节 Hinge Joint 将两个刚体 Rigidb
  • jenkins fastlane淌坑记录

    目录 前言 管理证书 使用证书 构建命令 关于app托管 iOS的版本自增 testflight上传 fastlane下苹果的账号验证问题 iOS缓存问题 iOS打包会开启8081服务 fastlane获取最新代码 Fastlane完整代码
  • CSRF漏洞详解

    目录 一 CSRF漏洞原理 1 基本原理 2 流程图 3 条件 二 分类 1 GET型 2 POST型 三 危害 四 检测与防御 1 检测 2 防御 一 CSRF漏洞原理 1 基本原理 CSRF Cross site Request For
  • linux用c++获取mac地址,网卡地址,网口地址,网卡序号ip地址,不使用 ioctl(sock, SIOCGIFCONF, &ifc)获取网络接口名称,这个接口有时会返回-1获取不到,换方法获取

    linux用c 获取mac地址 不使用 ioctl sock SIOCGIFCONF ifc 获取网络接口名称 这个接口有时会返回 1获取不到 换方法获取 1 弃用 SIOCGIFCONF 获取网络接口名称列表 获取所有网络接口列表 ifc
  • # Python推荐系统学习笔记(3)------基于协同过滤的个性化推荐算法实战---隐语义模型

    Python推荐系统学习笔记 3 基于协同过滤的个性化推荐算法实战 隐语义模型 一 概念性理解 传统的推荐方法 UserCF 首先需要找到和他们看了同样书的其他用户 然后给他们推荐那些用户喜欢的其他书 ItemCF 需要给他们推荐和他们已经
  • SpringCloud-Hystrix服务降级与熔断简介与简单配置

    1 前言 作者最近在学习springcloud 本篇文章仅作为学习笔记 如有错误 敬请指正 2 Hystrix是什么 Hystrix是一个用于处理分布式系统的延迟和容错的开源库 在分布式系统里 许多依赖不可避免的会调用失败 比如 超时 异常
  • 8.常用统计分析方法——生存分析

    目录 生存分析基本概念 生存率估计 1 乘积极限法 2 寿命表法 3 生存曲线 生存曲线比较 COX比例风险回归模型 1 建立COX回归模型 2 比例风险假定的检验 3 生存预测 生存分析基本概念 logistic回归中因变量是终点事件发生
  • cocos creator碰撞和碰撞回调不生效

    1 碰撞不生效 一定要记得 在使用物理的时候 一定要先开启物理 cc director getPhysicsManager enabled true 只有在onLoad 中 开启 才有效 在onEnable 或者start 都无效 2 碰撞
  • Rational Rose 7.0安装教程

    关注公众号 免费获取资料 简介 Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具 用于可视化建模和公司级水平软件应用的组件构造 就像一个戏剧导演设计一个剧本一样 一个软件设计师使用Ration

随机推荐

  • 性能测试之性能监控和性能优化

    目录 一 概述 二 jconsole和jvisualvm 三 jconsole 四 visualvm 1 输入命令提示 jvisualvm不是内部或外部命令 也不是可运行的程序或批处理文件 2 打开jvisualvm里面不包含GC监控 五
  • 基于低代码平台实现的免费CRM系统

    编者按 企业生存的根本是客户资源 因此客户关系的管理对于企业来说至关重要 目前我国中小企业对于客户的管理方法不够重视 以致于客户外流 客户转化率不高 而CRM客户关系管理系统有助于企业培养和增强客户关系 下面就让我们一起来了解一下企业该如何
  • 使用Java编写的简单行为树

    引言 试着用java把以前用c 写的行为树复现了出来 代码 import java util Random 假设有一士兵 初始生命为100 弹药为200发 每个弹匣40发 会逃跑 会巡逻 会攻击 会换弹 会补给 会发现敌人 class So
  • MyBatis基础语法

    1 namespace用于指定dao Mapper 层文件的路径 2 property传入的值与po SysUser的属性对应 3 column传入的值与数据库的字段对应 4 javaType传入的值 路径 是java这边的数据类型 5 j
  • C语言写九九乘法表(五种方法)

    当我们学习编程语言时 通常需要掌握一些基本的语法和功能 在C语言中 输出九九乘法表是一个很好的练习 因为它既简单又有趣 本文将介绍如何用C语言编写代码来输出九九乘法表 在开始之前 请确保您已经安装了C语言的开发环境 比如VS2019 首先
  • el-input 怎么添加鼠标悬浮内容展示

    您可以通过使用el tooltip组件的content属性将提示框附加到el input中 然后 您可以添加一个文本框和图标 当鼠标悬停在这些元素上时 提示框就会显示 以下是示例代码
  • 在 Python 中使用 MQTT的方法

    更多编程教程请到 菜鸟教程 https www piaodoo com 友情链接 高州阳光论坛https www hnthzk com Python 是一种广泛使用的解释型 高级编程 通用型编程语言 Python 的设计哲学强调代码的可读性
  • 【华为OD机试真题 python】组装最大可靠性设备【2023 Q2

    前言 华为OD笔试真题 python 本专栏包含华为OD机试真题 会实时更新收纳网友反馈 为大家更新最新的华为德科OD机试试题 为大家提供学习和练手的题库 订阅本专栏后可私信进交流群哦 题目描述 组装最大可靠性设备 一个设备由N种类型元器件
  • QT的UDP协议

    UDP协议 客户端并不与服务器建立连接 它只负责调用发送函 数向服务器发出数据报 类似地 服务器也不从客户端接收连接 只负责调用接 收函数 等待来自某客户端的数据到达 客户端 端口号 quint64 初始化端口 quint64 port 5
  • idea 出现 Failure to find org.eclipse.m2e:lifecycle-mapping:pom:1.0.0 in http://maven.aliyun.com/

    使用mybatis autogenerator时失败 显示Failure to find org eclipse m2e lifecycle mapping pom 1 0 0 in http maven aliyun com nexus
  • G - 数据结构实验之栈与队列七:出栈序列判定

    Description 给一个初始的入栈序列 其次序即为元素的入栈次序 栈顶元素可以随时出栈 每个元素只能入栈依次 输入一个入栈序列 后面依次输入多个序列 请判断这些序列是否为所给入栈序列合法的出栈序列 例如序列1 2 3 4 5是某栈的压
  • Flutter中EventBus组件的使用

    1 首先导入使用EventBus时所需的包 event bus 1 1 1 2 还需要一个EventBus工具类 import dart async import package event bus event bus dart impor
  • QT打包exe程序

    文章目录 1 Release版本编译 2 发布给别人的版本 1 Release版本编译 qt选择release编译后 到对应release文件夹找到exe 双击运行 如果运行不了或者报错缺少dll文件 大概率是没有添加环境变量 打开系统环境
  • 第一次使用Android Studio时你应该知道的一切配置

    http www cnblogs com smyhvae p 4390905 html
  • Linux系统目录简介及常规操作命令

    文件类型 普通文件 regular file 就是一般存取的文件 由ls al显示出来的属性中 第一个属性为 例如 rwxrwxrwx 另外 依照文件的内容 又大致可以分为 1 纯文本文件 ASCII 这是Unix系统中最多的一种文件类型
  • 关系型数据库(mysql等)和非关系型数据库(Redis、ElasticSearch、HBase等)对比

    目录 一 关系型数据库 二 非关系型数据库 1 缓存型数据库 1 Redis 2 Memcached 2 文档型数据库 1 ElasticSearc 2 mongoDB 3 列式型数据库 1 HBase 2 Cassandra 一 关系型数
  • 玩无人机必备!PID调节经验

    Kp 比例系数 比例带 比例度 P 输入偏差信号变化的相对值与输出信号变化的相对值之比的百分数表示 比例系数的倒数 T 采样时间 Ti 积分时间 Td 微分时间 温度T P 20 60 Ti 180 600s Td 3 180s 压力P P
  • Linux nrm 运行失败,linux – npm安装失败

    我首先要说的是 我没有在终端或使用node js工作的经验 同事离开度假 我试图按照他离开的说明在我们的演示服务器上设置他的应用程序 我可以在本地运行所有内容 但是在安装socket io模块的服务器上遇到问题 安装了python 安装了n
  • The driver is automatically registered via the SPI -这是啥含义?

    jdbc Driver 被自动注册了 这里面牵扯到几件事 一一道来 1 何为SPI 它是如何把Driver加载进去的 SPI 全名 Service Provider Interface 是一种服务发现机制 它通过在ClassPath路径下的
  • 1094 谷歌的招聘 (20 分)

    2004 年 7 月 谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌 如下图 用于招聘 内容超级简单 就是一个以 com 结尾的网址 而前面的网址是一个 10 位素数 这个素数是自然常数 e 中最早出现的 10 位连续数字 能找出这个