Python学习
1.字符串
2.函数
算法训练
#include<iostream>
#include<string>
#include<algorithm>
#include<string.h>
using namespace std;
int a[1000005];
int main()
{
string s,s1,s2;
s1="38";
s2="4";
memset(a,0,sizeof(a));//将数组a[]每个元素初始化为0;
int t,sum=0,a1,a2;
for(int i=0;i<1000000;i++)
{//将0到999999内的
t=i;
while(t)
{//将t拆分,化为字符串存入s中
s+=(t%10+'0');
t=t/10;
}
reverse(s.begin(),s.begin()+s.size());//逆转s的顺序
if(s.find(s1)!=-1||s.find(s2)!=-1)//如果在s内找到了'38'或者'4',就计数
{
sum++;
}
s=" ";//清空s
a[i]=sum;//对应的下标i,对应存储0到i-1内的令人讨厌的数的个数;
}
while(cin>>a1>>a2)
{
if(a1==0&&a2==0)
break;
cout<<a[a2]-a[a1-1]<<"\n";//输出差即可
}
}
#include<iostream>
#include<algorithm>
using namespace std;
int a[2005];
int n;
bool check(int x)
{
int lb=0,hb=n-1;
while(lb<hb)
{//二分查找
int mid=(lb+hb)>>1;
if(x==a[mid])
return true;
else if(x>a[mid])
lb=mid+1;
else
hb=mid-1;
}
return false;
}
int main()
{
int x;
cin>>n>>x;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);//排序
bool flag=false;
for(int i=0;i<n;i++)
{//模拟出ax^2+bx的所有结果
for(int j=0;j<n;j++)
{
int t=a[i]*x*x+a[j]*x;
if(-t>a[n-1]||-t<a[0])
continue;
if(check(-t))
{
cout<<"YES"<<endl;
flag=true;
break;
}
}
if(flag)
break;
}
if(!flag)
cout<<"NO"<<endl;
return 0;
}