1094 谷歌的招聘 - PAT (Basic Level) Practice (中文) (pintia.cn)
认真读题,发现题目说的比较复杂,其实就是简单求素数,中间进行整数字符串转换问题
关于字符串转整数可以用 atoi(),stoi(),stringsttream,atoi()是c语言的函数,不可以把string转为整数,所以只能用stoi(),stoi()是c++的函数。当然也可以用stringstream,我下面给了两个版本的代码。
坑点:
stringstream
#include<iostream>
#include<string>
#include<cmath>
#include<sstream>
using namespace std;
bool isprime(int num)
{
if (num == 0 || num == 1) return false;
for(int i=2;i<=sqrt(num);i++)
{
if(num%i==0)return false;
}
return true;
}
int main()
{
int l,k;cin>>l>>k;
string s;
cin>>s;
for (int i = 0; i <= l - k; i++) {
string t;
t=s.substr(i,k);
// int num=stoi(ss);
stringstream ss;
int num=0;
ss<<t;
ss>>num;
if(isprime(num))
{
cout<<t;
return 0;
}
}
cout<<"404\n";
return 0;
}
stoi
#include<iostream>
#include<string>
#include<cmath>
#include<sstream>
using namespace std;
bool isprime(int num)
{
if (num == 0 || num == 1) return false;
for(int i=2;i<=sqrt(num);i++)
{
if(num%i==0)return false;
}
return true;
}
int main()
{
int l,k;cin>>l>>k;
string s;
cin>>s;
for (int i = 0; i <= l - k; i++) {
string t;
t=s.substr(i,k);
int num=stoi(ss);
if(isprime(num))
{
cout<<t;
return 0;
}
}
cout<<"404\n";
return 0;
}