乙個簡單的小題目引發的血案

2021-07-27 11:32:20 字數 1252 閱讀 3100

我們在做題的時候,經常遇到一些情況,就是明明能過樣例,但是提交卻總是wa,往往會讓人內心崩潰,提交一遍兩遍還行,如果提交了四遍以上,我就會想,唉,算了吧,先換一題,換換思路,後來又想,都已經做了這麼久了,再找一下就能找到結果了,我以我最近乙個提交了7次才ac的經驗來警示自己,以此自勉:

題目描述:

有二個整數,它們加起來等於某個整數,乘起來又等於另乙個整數,它們到底是真還是假,也就是這種整數到底存不存在,實在有點吃不準,你能快速回答嗎?看來只能通過程式設計。

例如:

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

#include 

#include

#include

int main()

scanf("%d

%d",&n,&m);

}return

0;}

再看看第一次的題解

#include 

#include

#include

int main()

出錯的原因是,yes-變成了yes, 而我再修改程式的時候一直沒有發現這個問題,所以這是修改很多次的主要原因。

又因為這個程式的問題其實特別多,首先沒有判斷delta是否大於零,沒有迴圈,並且沒有考慮x-p是負數的情況

並且當我發現沒有判斷delta的時候

#include 

#include

#include

int main()

}return

0;}

因為第二個scanf的讀入放在了else的括號裡面

這樣就導致了輸出很多個no,就變成了可憐的output limit exceeded

自以為還很對……

事實上,比較好的方法是直接把scanf放在while的條件裡面,還能省掉乙個語句,節省時間。

錯了那麼多次,乙個簡單的程式,也是乙個深刻的教訓,寫程式的時候,首先要對一些程式設計養成良好的習慣,比如怎麼寫迴圈中的輸入條件,和判斷是不是整數的方法,這樣可以規避一些問題,同時要考慮問題全面,這樣才能夠避免一些各種各樣的wa……

乙個小題目

看到一道題目,自己嘗試了一下 編寫乙個在1,2,9 順序不能變 數字之間插入 或 或什麼都不插入,使得計算結果總是100的程式,並輸出所有的可能性。例如 1 2 34 5 67 8 9 100.首先要考慮所有的可能性,每兩個數字間有3種可能,一共有3的8次方種可能。這樣就能通過遍歷實現。void v...

乙個程式設計小題目引發的思考(上)

乙個程式設計小題目引發的思考 首先簡介下題目 輸入 乙個不超過12位的十進位制正整數 輸出 列印此數字的十進位制計算器表示 例 輸入 145 輸出 看到這個題目,也沒多想,反正就是把這些數字打出來而已,那就一行一行打唄 於是在紙上畫了幾個計算器表示形式的數字 規律是很明顯的,每個數字都由3行4列組成...

原型的乙個小題目

題目要求 建立乙個shape物件,該物件有乙個type屬性和gettype 方法 定義乙個原型為shape的 建構函式,用 建立的物件應有三個物件屬性 a b c,分別用於表示三角形的三條邊 在物件原型中新增乙個名為getperimeter 的新方法,用下面的 來進行測試 var t new 1,2...