本文主要是介绍XTU 1185 Bob's Problem,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Bob's Problem | ||
Accepted : 53 | Submit : 356 | |
Time Limit : 1000 MS | Memory Limit : 65536 KB |
题目描述Bob今天碰到一个问题,他想知道x3+y3 = c 是否存在正整数解? 输入第一行是一个整数K(K≤20000),表示样例的个数。 以后每行一个整数c(2≤c≤109) 输出每行输出一个样例的结果,如果存在,输出“Yes”,否则输出“No”。(引号不用输出) 样例输入2 28 27 样例输出Yes No |
代码:
#include <stdio.h>
#include <algorithm>
using namespace std;
int ans[900000];
int cnt = 0;
bool find(int x)
{int end = cnt - 1;int begin = 0;while (end >= begin){int mid = (end + begin) / 2;if (x == ans[mid])return true;else if (x < ans[mid])end = mid - 1;elsebegin = mid + 1;}return false;
}
int main()
{for (int i = 1; i < 1000; i++){for (int j = 1; j < 1000; j++){if (i*i*i + j*j*j <= 1000000000)ans[cnt++] = i*i*i + j*j*j;else break;}}sort(ans, ans + cnt);int k;scanf("%d", &k);while (k--){int c;scanf("%d", &c);if (find(c))puts("Yes");elseputs("No");}return 0;
}
这篇关于XTU 1185 Bob's Problem的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!