1004: 有解吗?
时间限制: 1 Sec 内存限制: 128 MB提交: 410 解决: 134
[提交][状态][讨论版]
题目描述
给出方程 a * 1234567 + b * 123456 + c * 1234 = n。其中 a、b、c 均为非负整数变量,n(1 <= n <=
10 ^ 9)为给出整数常量。判断方程是否有解。
10 ^ 9)为给出整数常量。判断方程是否有解。
输入
一个整数 n
输出
如果有解,输出“YES”;无解,输出“NO”。
样例输入
1234567
样例输出
YES
提示
双重循环,
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int a = 1234567; 5 int b = 123456; 6 int c = 1234; 7 8 int main() 9 { 10 int n; 11 int i, j; 12 int k1, k2; 13 bool flag; 14 while (~scanf("%d", &n)) { 15 flag = false; 16 for (i = 0; a * i <= n; ++i) { 17 k1 = a * i; 18 for (j = 0; k1 + b * j <= n; ++j) { 19 k2 = b * j; 20 if ((n - k1 - k2) % c == 0) { 21 flag = true; 22 break; 23 } 24 } 25 if (flag) { 26 break; 27 } 28 } 29 if (flag) { 30 printf("YES "); 31 } else { 32 printf("NO "); 33 } 34 } 35 return 0; 36 }