學(xué)習(xí)筆記--2092

1.OJ 2092(http://acm.hdu.edu.cn/showproblem.php?pid=2092)

Problem Description
有二個(gè)整數(shù),它們加起來(lái)等于某個(gè)整數(shù),乘起來(lái)又等于另一個(gè)整數(shù),它們到底是真還是假,也就是這種整數(shù)到底存不存在,實(shí)在有點(diǎn)吃不準(zhǔn),你能快速回答嗎?看來(lái)只能通過(guò)編程。
例如:
x + y = 9,x * y = 15 ? 找不到這樣的整數(shù)x和y
1+4=5,14=4,所以,加起來(lái)等于5,乘起來(lái)等于4的二個(gè)整數(shù)為1和4
7+(-8)=-1,7
(-8)=-56,所以,加起來(lái)等于-1,乘起來(lái)等于-56的二個(gè)整數(shù)為7和-8

Input
輸入數(shù)據(jù)為成對(duì)出現(xiàn)的整數(shù)n,m(-10000<n,m<10000),它們分別表示整數(shù)的和與積,如果兩者都為0,則輸入結(jié)束。

Output
只需要對(duì)于每個(gè)n和m,輸出“Yes”或者“No”,明確有還是沒(méi)有這種整數(shù)就行了。

Sample Input
9 15
5 4
1 -56
0 0

Sample Output
No
Yes
Yes

2.思考:一看到這道題,心想這不是無(wú)腦循環(huán)就可以解決的題嗎,然后一下子就把它跑出來(lái)了

#include<stdio.h> 
int main(){
    int flag,n,m,i,j;
    while(scanf("%d %d",&n,&m)!=EOF){
        flag=0;
        if(n==0&&m==0)break;
        for(i=-9999;i<10000;i++){
                for(j=i+1;j<10000;j++){
                if(i+j==n&&i*j==m){ 
                flag=1;
                break;
            }   
          }
        }
        if(flag==0)printf("No\n");
        else printf("Yes\n");
    } 
}

但是心中總感覺(jué)有點(diǎn)不對(duì)勁。果然,放上去跑的時(shí)候,顯示超時(shí)了,這個(gè)時(shí)候問(wèn)題就來(lái)了,怎么讓他不超時(shí)呢?

后來(lái)仔細(xì)想想為什么要弄雙重循環(huán)呢,單循環(huán)已經(jīng)足夠解決這個(gè)問(wèn)題了!因?yàn)樗旧硪呀?jīng)有個(gè)默認(rèn)條件i+j=n了。令這個(gè)條件成立再把j=n-i代入i*j==m這個(gè)判斷式中,當(dāng)條件成立時(shí)即為兩個(gè)條件都滿足。

3.實(shí)現(xiàn)代碼:

#include<stdio.h> 
int main(){
    int flag,n,m,i,j;

    while(scanf("%d %d",&n,&m)!=EOF){
        flag=0;
        if(n==0&&m==0)break;
        for(i=-9999;i<10000;i++){
                if(i*(n-i)==m){
                flag=1;
                break;
          }
        }
        if(flag==0)printf("No\n");
        else printf("Yes\n");
    } 
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在C語(yǔ)言中,五種基本數(shù)據(jù)類(lèi)型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來(lái)閱讀 4,061評(píng)論 0 2
  • 【程序1】 題目:古典問(wèn)題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔...
    開(kāi)心的鑼鼓閱讀 3,395評(píng)論 0 9
  • Java經(jīng)典問(wèn)題算法大全 /*【程序1】 題目:古典問(wèn)題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子...
    趙宇_阿特奇閱讀 2,082評(píng)論 0 2
  • 萬(wàn)家文化旗下萬(wàn)家游戲王牌動(dòng)作手游《絕地逃亡》,即將開(kāi)啟首次測(cè)試。本作根據(jù)成龍、范冰冰主演同名大電影正版授權(quán)IP改編...
    關(guān)東英雄閱讀 381評(píng)論 0 0
  • 呢喃不清的語(yǔ)調(diào) 風(fēng)一吹四下散開(kāi) 問(wèn)與答斷斷續(xù)續(xù) 風(fēng)帶漫雨四時(shí)延 午夜想起午夜 湖水早已封喉 哽咽無(wú)言的午夜 想起一...
    騷騷_閱讀 213評(píng)論 0 0

友情鏈接更多精彩內(nèi)容