先贴代码:
#include <iostream>
using namespace std;
int main()
{
int testNum;
cin>>testNum;
int cnt,x,y,z;
while(testNum--)
{
cin>>cnt>>x>>y>>z;
int firstBit,lastBit,cost=0;
for(firstBit=9;firstBit>0;firstBit--)
{
for(lastBit=9;lastBit>=0;lastBit--)
{
int tmp=(firstBit*10000+x*1000+y*100+z*10+lastBit);
if(tmp%cnt==0)
{
cost=tmp;
break;
}
}
<strong><span style="color:#ff0000;">if(cost!=0)break;</span></strong>
}
if(firstBit>0)
cout<<firstBit<<" "<<lastBit<<" "<<cost/cnt<<endl;
else
cout<<firstBit<<endl;
}
return 0;
}标红部分直接改为if((firstBit*10000+x*1000+y*100+z*10+lastBit)%cnt==0)break;不可,因为可能lastBit=-1时正好某种情况吻合。。。

本文介绍了一个使用C++编写的算法,该算法通过输入四个数字和一个计数器,尝试找到一个五位数,使其能被计数器整除。通过对首位和末位进行迭代,并构造出所有可能的五位数进行检查,最终找到符合条件的数字并输出。
943

被折叠的 条评论
为什么被折叠?



