1094 谷歌的招聘 (20 分)

1094 谷歌的招聘 (20 分)

  1. 这是一个贼坑的题
    附上第一次的代码如下:
#include<iostream>
#include<string>
#include<math.h>
using namespace std;
bool IsPrime(int i) {
	if (i == 0 || i == 1)return false;
	for (int j = 2; j <= sqrt(i); j++) 
		if (i%j == 0)return false;
	return true;
}
int main() {
	int N, K, value;
	cin >> N >> K;
	string s;
	cin >> s;
	for (int i = 0; i <=(s.length()-K); i++) {
		value=stoi(s.substr(i, K));
		if (IsPrime(value)) {
			cout << s.substr(i, K); return 0;
		}
	}	
    cout << "404";
	return 0;
}

这个代码我反复思考了几十次,觉得完全莫得问题!
但是每次都是过不了测试点4!!!!!
后来我仔细看了下柳神的代码,我发现基本上完全一致,唯一一个地方就是:
for (int i = 0; i <=(s.length()-K); i++)
经测试,此处s.length()改为N就对了;
那么问题来来了:

原题描述如下:

输入格式:

输入在第一行给出 2 个正整数,分别是 L(不超过 1000 的正整数,为数字长度)和 K(小于 10 的正整数)。接下来一行给出一个长度为 L 的正整数 N。
那意思就是说输入的第二行数的长度等于L,但是此处测试案例绝对是输入的长度大于了L,导致测试点4的s.length()不等于N!
坑。。。。。。。。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值