P1055 [NOIP2008 普及组] ISBN 号码
#include<iostream>
using namespace std;
int main(){
char a[14],mod[12]="0123456789X";
scanf("%s",a);
/*
for(int i=0;i<12;i++){
cin>>a[i];
}
*/
int i,j=1,t=0;
for(i=0;i<12;i++){
if(a[i]=='-') continue;
t+=(a[i]-48)*j++;
}
if(mod[t%11]==a[12])
cout<<"Right";
else{
a[12]=mod[t%11];
printf("%s",a);
/*for(int i=0;i<13;i++){
cout<<a[i];
}
*/
}
return 0;
}
P1308 [NOIP2011 普及组] 统计单词数
#include<iostream>
using namespace std;
int main()
{
string s1,s2;
getline(cin,s1);
getline(cin,s2);
int len1,len2;
len1=s1.size();
len2=s2.size();
bool flag=0;
for(int i=0;i<len1;i++) s1[i]=tolower(s1[i]);
for(int i=0;i<len2;i++) s2[i]=tolower(s2[i]);//转换成小写;
int cnt=0,temp,start,count=0;
for(int i=0;i<len2;i++)
{
temp=i;
cnt=0;
if(s2[i-1]==' '||i==0){
for(int j=0;j<len1;j++)
{
if(s1[j]==s2[i])
{
i++;
cnt++;
if(cnt==len1&&(s2[i]==' '||s2[i]=='\0'))
{
if(flag==0)
{
flag=1;
start=temp;
count++;
}
else
{
count++;
}
}
}
else break;
}
}
}
if(flag==0)cout<<"-1"<<endl;
else cout<<count<<" "<<start<<endl;
}
P1012 [NOIP1998 提高组] 拼数
这题目不禁让我感慨,字符串居然还能这样子做,太牛逼了吧我靠
#include<iostream>
using namespace std;
string s[25];
int n;
bool cmp(string a,string b)
{
return a+b>b+a;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>s[i];
sort(s+1,s+1+n,cmp);
for(int i=1;i<=n;i++)cout<<s[i];
return 0;
}
7-8 谷歌的招聘 (10分)
写完上面那题让我想到了之前训练赛写的这个,就一起复制过来了
#include<bits/stdc++.h>
using namespace std;
bool isprime(int n)
{
if (n<=1)//特判1不是质数
{
return false;
}
for(int i=2;i*i<=n;i++)
{
if(n%i==0)
{
return false;
}
}
return true;
}
int main()
{
int a,b,n;
cin>>a>>b;
string s,s2;
cin>>s;
for(int i=0;i<=a-b;i++)
{
s2=s.substr(i,b);//从下标为i开始截取长度为b位
n=stoi(s2);//string to int 字面意思
if(isprime(n))
{
cout<<s2<<endl;
return 0;
}
}
cout<<"404"<<endl;
return 0;
}