0
已解决
朱明磊
修练者
修练者
题目链接: 酷町堂:7278
#include<bits/stdc++.h>
using namespace std;
int n,a[15],b[15];
bool check(int x){
for(int i=1;i<=n;i+=1){
if(x%a[i]!=b[i]){
return 0;
}
}
return 1;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
}
for(int k=0;;k++){
if(check(k)){
cout<<k;
break;;
}
}
return 0;
}
50分超时
帮忙找错
0
0
丁梓豪
新手天翼
新手天翼
这一题纯粹枚举是会超时的,要进行一些优化:
枚举a[i]的公倍数
这个十分简单
输入不变
首先,定义两个变量t和ans
t等于a[1]
ans等于b[1]
再来一个for循环从2遍历到n
for循环里再来一个while循环
括号里的条件是ans%a[i]!=b[i]
while循环里头是:ans+=t;
这就相当于你的cheak了
写完while循环之后还要再加一个
t*=a[i]
最后输出ans就行了
祝你AC愉快~
0
0