1 solutions
-
0
模拟(数字模拟 100pts)
- 从小到大排序所有图书,然后按照取出每个作者需求的k位进行比较
#include<bits/stdc++.h> using namespace std; int p[]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000}; const int N=1010; int a[N]; int main() { int n,q; cin>>n>>q; for(int i=1;i<=n;i++) { cin>>a[i]; } sort(a+1,a+n+1); //从小到大排序 while(q--) { int k,b; cin>>k>>b; int ans=-1; for(int i=1;i<=n;i++) { int t=a[i]%p[k]; //求a[i]的后k位 if(t==b) { ans=a[i]; break; } } cout<<ans<<endl; //输出对应的答案 } return 0; }
模拟(100pts)
- 比较的时候使用数字比较,然后使用to_string()函数将数字转成字符串进行截取操作.
#include<bits/stdc++.h> using namespace std; const int N=1010,INF=1e9; int n,m; int id[N]; int main() { cin>>n>>m; for(int i=1;i<=n;i++) { cin>>id[i]; } while(m--) { int l; string num; cin>>l>>num; int res=INF; //图书编码 for(int i=1;i<=n;i++) { string s=to_string(id[i]); //转成字符串好截取 if(s.size()>=l&&s.substr(s.size()-l)==num) //可以找到 { res=min(res,id[i]); //更新图书编码 } } if(res==INF) res=-1; cout<<res<<endl; } return 0; }
- 1
Information
- ID
- 1056
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 10
- Tags
- # Submissions
- 6
- Accepted
- 3
- Uploaded By