HD_2092整数解
生活随笔
收集整理的這篇文章主要介紹了
HD_2092整数解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Problem Description
有二個(gè)整數(shù),它們加起來等于某個(gè)整數(shù),乘起來又等于另一個(gè)整數(shù),它們到底是真還是假,也就是這種整數(shù)到底存不存在,實(shí)在有點(diǎn)吃不準(zhǔn),你能快速回答嗎?看來只能通過編程。
例如:
x + y = 9,x * y = 15 ? 找不到這樣的整數(shù)x和y
1+4=5,1*4=4,所以,加起來等于5,乘起來等于4的二個(gè)整數(shù)為1和4
7+(-8)=-1,7*(-8)=-56,所以,加起來等于-1,乘起來等于-56的二個(gè)整數(shù)為7和-8
Input 輸入數(shù)據(jù)為成對出現(xiàn)的整數(shù)n,m(-10000<n,m<10000),它們分別表示整數(shù)的和與積,如果兩者都為0,則輸入結(jié)束。
Output 只需要對于每個(gè)n和m,輸出“Yes”或者“No”,明確有還是沒有這種整數(shù)就行了。
Sample Input 9 15 5 4 1 -56 0 0
Sample Output No Yes Yes/** * x + y = b, x * y = c; 解為 (n±√(Δ))/2; 只要√(Δ)為整數(shù),并且b±√(Δ)被2整除,就有解。 */#include<stdio.h> #include<math.h>int main(){int b,c;while((scanf("%d%d",&b,&c)!=EOF),b+c){int total=sqrt(b*b-4*c);if( total*total == b*b-4*c && (b+total)%2 == 0 /*&& (b-total)%2 == 0*/) printf("Yes\n");else printf("No\n");}}
例如:
x + y = 9,x * y = 15 ? 找不到這樣的整數(shù)x和y
1+4=5,1*4=4,所以,加起來等于5,乘起來等于4的二個(gè)整數(shù)為1和4
7+(-8)=-1,7*(-8)=-56,所以,加起來等于-1,乘起來等于-56的二個(gè)整數(shù)為7和-8
Input 輸入數(shù)據(jù)為成對出現(xiàn)的整數(shù)n,m(-10000<n,m<10000),它們分別表示整數(shù)的和與積,如果兩者都為0,則輸入結(jié)束。
Output 只需要對于每個(gè)n和m,輸出“Yes”或者“No”,明確有還是沒有這種整數(shù)就行了。
Sample Input 9 15 5 4 1 -56 0 0
Sample Output No Yes Yes/** * x + y = b, x * y = c; 解為 (n±√(Δ))/2; 只要√(Δ)為整數(shù),并且b±√(Δ)被2整除,就有解。 */#include<stdio.h> #include<math.h>int main(){int b,c;while((scanf("%d%d",&b,&c)!=EOF),b+c){int total=sqrt(b*b-4*c);if( total*total == b*b-4*c && (b+total)%2 == 0 /*&& (b-total)%2 == 0*/) printf("Yes\n");else printf("No\n");}}
總結(jié)
以上是生活随笔為你收集整理的HD_2092整数解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据服务基础能力之元数据管理
- 下一篇: Java 集合类说明及区别