問題描述:html
一個籠子裏裏關了雞和兔子。已經知道了籠子裏的腳的總數,問籠子中至少有多少隻動物,至多有多少隻動物?ios
輸入數據測試
第一行是測試的數據組數n,後面跟着n行輸入,魅族測試數據佔一行,包括一個正整數a(a < 32768)spa
輸出要求code
n行, 每行對應一個輸入,輸出是兩個正整數,第一個是最少的動物書,第二是最大的動物數,兩個正整數用空格分開htm
若是沒有知足要求的的狀況出現,則輸出兩個0blog
輸入樣例io
2class
3stream
20
輸出樣例
0 0
5 10
以目前的‘智商’,恐怕又要暴力解決了!最少的動物確定是兔子爲主了,從零開始,每次加4直到二者(總腳數)之差小於4 若是差是2就再加一個動物 若是是0就結束
若是是奇數那麼就只好輸出0 0了
不過這樣的作法顯然是大費周章了。
書上是這樣分析這個問題的:
這個問題能夠描述成任給一個正整數N,若是N是奇數,輸出0 0,不然若是N是4的倍數,輸出N/4 N/2,若是N不是4的倍數,輸出N/4+1 N/2。這是一個通常性的計算題,
只要實現相應的判斷和輸出代碼就能夠了。題目中說明了輸入整數在一個較小的範圍以內,因此只須要考慮整數運算就能夠了。
代碼天然是簡單的- -
智商天然是捉急的- -
書上的解決方法顯然更加的具備‘大局觀’
//http://www.cnblogs.com/xdblog/p/5451306.html #include<iostream> #include<stdio.h> int main() { int nNumber; int nFeet; scanf("%d", &nNumber); for(int i = 0; i < nNumber; i++){ scanf("%d", &nFeet); if(nFeet%2 != 0) //若是出現奇數 輸出0 0 { printf("0 0\n"); }else if(nFeet%4 == 0){ //若是能被4整除 printf("%d %d\n", nFeet/4, nFeet/2); }else{ //不能被4整除 說明多出兩隻腳 printf("%d %d\n", nFeet/4+1, nFeet/2); } } return 0; }