当前位置: 首页 > news >正文

c++ 谷歌的招聘 题解

题目描述

2004 年 7 月,谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌(如下图)用于招聘

内容超级简单,就是一个以 .com 结尾的网址,而前面的网址是一个 10 位素数,这个素数是自然常数 e 中最早出现的 10 位连续数字

能找出这个素数的人,就可以通过访问谷歌的这个网站进入招聘流程的下一步

自然常数 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

思路:

没什么好讲的......直接一位一位看是不是质数......

AC代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
bool isPrime(int n)
{for(int i=2;i<=n/i;i++){if(n%i==0){return 0;}}return n>=2;
}
signed main() 
{int l,k;cin >> l >> k;string s;cin >> s;int pos=0;for(int i=0;i<l-k+1;i++){string w=s.substr(i,k);int ans=stoll(w);if(isPrime(ans)){cout<<w;return 0;}pos++;}cout<<404;return 0;
}


http://www.mrgr.cn/news/11456.html

相关文章:

  • Java面试宝典-java基础01
  • 550MHz超高主频:揭秘ST公司M7单核性能王MCU(附全系列MCU报告一览表)
  • CDGA|企业数据治理:迈向成功的关键路径
  • 云计算环境下的等保测评要点分析
  • C#入门(13)if语句
  • python爬虫,使用pyppeteer异步,爬取,获得指定标签内容
  • 计算机网络--面试总结三(Http与Https)
  • K8S故障
  • Excel数据提取技巧:快速整理非结构化数据
  • 【工具】Windows 上安装 PostgreSQL(图文详情)
  • 【计算机三级-数据库技术】数据库及数据库对象
  • 7-11 矩阵转置
  • 工业软件架构3:(QT和C++实现)
  • CSS 实现 两栏布局、三栏布局,以及常见的水平居中的方法
  • leetcode416:分割等和子集
  • Django 在CBV添加装饰器
  • How do you implement OpenAI GPT-3 Api Client in PHP?
  • 中年“夹心人”,用电视缓解“精神内耗”
  • 【R语言】基于nls函数的非线性拟合
  • 【JVM】剖析字符串与数组的底层实现(一)