南阳oj 韩信点兵

/*#include<iostream>
using namespace std;
int main ()
{
int a,b,c;
int sum;
cin>
cin>>a>>b>>c;
for(int i=1;i<100;i++)
{
if(i%3==a&&i%5==b&&i%7==c)
{
cout<<i<<endl;
break;
}
}
return 0;
}
*/
#include<iostream>
using namespace std;
int main ()
{
int a,b,c;
int sum;
cin>>a>>b>>c;
sum=a*70+b*21+c*15;
int flag=3*5*7;
while(sum>=flag)
sum=sum-flag;
cout<<sum<<endl;
return 0;
}

用了两种方法,一个是简单的遍历,因为题目中给出的数据范围是10~100,遍历也不复杂

第二种是看的网上大佬的博客,用了中国剩余定理。

以此类推到按照其他方式排队时,根据余出来的人,也可以快速算出总人数。

猜你喜欢

转载自www.cnblogs.com/huanya/p/9351232.html