整数解 (hdu 2092

整数解

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 25460    Accepted Submission(s): 8911

Problem Description

有二个整数,它们加起来等于某个整数,乘起来又等于另一个整数,它们到底是真还是假,也就是这种整数到底存不存在,实在有点吃不准,你能快速回答吗?看来只能通过编程。
例如:
x + y = 9,x * y = 15 ? 找不到这样的整数x和y
1+4=5,1*4=4,所以,加起来等于5,乘起来等于4的二个整数为1和4
7+(-8)=-1,7*(-8)=-56,所以,加起来等于-1,乘起来等于-56的二个整数为7和-8

Input

输入数据为成对出现的整数n,m(-10000<n,m<10000),它们分别表示整数的和与积,如果两者都为0,则输入结束。

Output

只需要对于每个n和m,输出“Yes”或者“No”,明确有还是没有这种整数就行了。

Sample Input

9 15

5 4

1 -56

0 0

Sample Output

No

Yes

Yes

Author

qianneng

Source

迎接新学期——超级Easy版热身赛

超easy版热身赛

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cmath>
 5
 6 using namespace std;
 7
 8 #define N 51
 9 #define INF 0x3f3f3f3f
10
11 int main()
12 {
13     int n, m;
14
15     while(scanf("%d%d", &n, &m), n+m)
16     {
17         //int flag = 0;
18
19         double x = 1.0*(n+sqrt(n*n-4*m))/2;
20         double y = 1.0*(n-sqrt(n*n-4*m))/2;
21
22         if(x == (int) x && y == (int)y)
23             printf("Yes\n");
24         else
25             printf("No\n");
26     }
27     return 0;
28 }

认真学习,认真生活。好好思考,好好学习。

时间: 2024-10-30 07:28:49

整数解 (hdu 2092的相关文章

HDU 2092 整数解 --- 水题

x+y = n, x*y = m; y = n - x; x * ( n - x) = m nx - x^2 = m; x^2 - nx + m = 0; △ = sqrt(n^2 - 4m) 要有整数解即△需要为可开方数即可. /* HDU 2092 整数解 --- 水题 */ #include <cstdio> #include <cmath> int main() { double n, m; while (scanf("%lf%lf", &n,

数学的强大~~ HDU 2092

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2092 这道题虽然简单,但是很受启发. 题目给出两个整数A, B,,问是否存在两个整数,使得和为A,乘积为B. 解题过程: 首先想到的办法,当然是用一个二重循环枚举. #include <cstdio> #include <cstdlib> int main() { int a, b; while(~scanf("%d%d", &a, &b)){ if

HDU 2092 算菜价(结束条件,坑呀!)

算菜价 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 20479    Accepted Submission(s): 10819 Problem Description 妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐.现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵. Input 输

hdu 2092

Ps:wa了两次....一次是从加法那边暴力,然而算法错误..应该从乘法那边暴力破解...然而又没算负数..加上负数..直接暴力AC. 代码: #include "stdio.h" int abs(int a); int main(){ int i,a,b,s,flag,flag1; while(~scanf("%d%d",&a,&b) && (a || b)){ flag=0; for(i=-abs(b);i<=abs(b);

杭电 2092 整数解

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2092 解题思路:网上百度了一元二次方程有整数解的情况的时候,根与系数的关系,发现还是用求根公式直接判断比较方便,另外还可以遍历来做,就是用一个二重循环,枚举i,j的值,看是不是满足 i+j=n,i*j=m 反思:读题目一定要仔细,输入的m,n都是整数 #include<stdio.h> #include<math.h> int panduan(double m) { if((long

A - Character Encoding HDU - 6397 - 方程整数解-容斥原理

A - Character Encoding HDU - 6397 思路 : 隔板法就是在n个元素间的(n-1)个空中插入k-1个板,可以把n个元素分成k组的方法 普通隔板法 求方程 x+y+z=10的正整数解的个数. 添元素隔板法 求方程 x+y+z=10的非负整数解的个数. 那么 增加 3 即转化为 了普通隔板法 但是这个题呢 还有 < N 的限制 ,那么就需要去除掉  ,分出的块中 有 > = n 的情况 . 就会 有 一块 出现 > =n ,两块 > =n 等等.. 具体

整数解(杭电2092)

整数解 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 22049    Accepted Submission(s): 7693 Problem Description 有二个整数,它们加起来等于某个整数,乘起来又等于另一个整数,它们到底是真还是假,也就是这种整数到底存不存在,实在有点吃不准,你能快速回答吗?看来只能通过编程. 例如:

杭电OJ -- 2092 整数解

太水了,这种东西! #include <iostream> using namespace std; int main() { double n = 0, m = 0; while (cin >> n >> m && !(n == 0 && m == 0)) { double temp = n * n - 4 * m; double c = sqrt(temp); double d = floor(c); if (temp < 0

转载:hdu 题目分类 (侵删)

转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092.1093. 1094.1095.1096.1097.1098.1106.1108.1157.116