题目解析:
这题给你一个n (1<=n<=10^9)让你判断是否有a*1234567+b*123456+c*1234=n的方法(a、b、c皆为正整数)
解题方法:
此题其实很简单,我自己做的时候考虑了很久用什么方法做,但算了一下时间复杂度后,发现之需要暴力枚举一下就行了(我估计也没什么好的方法了,解法可能会有点重复,望通过)
AC代码:
#include <cstdio>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<=n;i+=1234567) //如果用i当计数器的话,例如i*1234567,这样会超时
{
for(int j=0;j<=n-i;j+=123456) //与i同理
{
if((n-i-j)%1234==0) //只需要判断剩下的数除以1234能否整除就行了
{
printf("YES\n"); //输出
return 0; //不return可能会TLE
}
}
}
printf("NO\n"); //上面如果找到了方法就直接return了,所以这里不需要判断什么
return 0;
}
THE END.