#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int t;
long long a,b,c,p,x1,x2,x3;
cin>>t;
while(t--)
{
cin>>p>>a>>b>>c;
if(p%a==0||p%b==0||p%c==0)
{
cout<<"0"<<endl;
}
else
{
x1=a-p%a;//分别求出到岸边的最短时间
x2=b-p%b;
x3=c-p%c;
cout<<min(x1,min(x2,x3))<<endl;
}
}
return 0;
}
错误代码:
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int t;
long long a,b,c,p,x1,x2,x3;
cin>>t;
while(t--)
{
cin>>p>>a>>b>>c;
if(p==a||p==b||p==c)
{
cout<<"0"<<endl;
}
else
{
for(int i=1;;i++)
{
if(p<=a)
{
x1=a-p;
break;
}
else
a+=a;//这里的a值在不断变化,草率了~~~~~~~~
}
for(int i=1;;i++)
{
if(p<=b)
{
x2=b-p;
break;
}
else
b+=b;
}
for(int i=1;;i++)
{
if(p<=c)
{
x3=c-p;
break;
}
else
c+=c;
}
cout<<min(x1,min(x2,x3))<<endl;
}
}
return 0;
}