歡迎來到天天文庫
瀏覽記錄
ID:52285306
大小:469.00 KB
頁數:44頁
時間:2020-04-03
《c語言課件--簡單計算題課件.ppt》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、第二章簡單計算題2.1例題:雞兔同籠問題描述一個籠子里面關了雞和兔子(雞有2只腳,兔子有4只腳,沒有例外)。已經知道了籠子里面腳的總數a,問籠子里面至少有多少只動物,至多有多少只動物輸入數據第1行是測試數據的組數n,后面跟著n行輸入。每組測試數據占1行,包括一個正整數a(a<32768)。輸出要求n行,每行輸出對應一個輸入。輸出是兩個正整數,第一個是最少的動物數,第二個是最多的動物數,兩個正整數用空格分開。如果沒有滿足要求的情況出現,則輸出2個0。輸入樣例2320輸出樣例00510輸入輸出題目分析(1)如果有奇數只腳,則輸入不正確(2)若要動物數目最少,使動物盡量有4只腳(3)若要動物數目
2、最多,使動物盡量有2只腳(4)題目中說明了輸入整數在一個比較小的范圍內,所以只需要考慮整數運算就可以了。解題思路這個問題可以描述成任給一個整數N,(1)如果N是奇數,輸出00,(2)否則如果N不是4的倍數,輸出N/4+1(只有一個是兩只腳)N/2(全兩只腳)(3)如果N是4的倍數,輸出N/4(全4只腳)N/2(全兩只腳)流程intmain(){intnCases,i,nFeet;讀入測試次數ncase;控制循環(huán)進行ncase次{讀入腳的只數nFeet;如果有奇數只腳,則輸入不正確,否則如果nFeet不是4的倍數動物數目最少nFeet/4+1,最多nFeet/2;否則動物數目最少nFeet/
3、4,最多nFeet/2;}}#includeintmain(){intnCases,i,nFeet;scanf("%d",&nCases);for(i=0;i4、是一個數學計算題,出錯有一下幾種情況:1)因為對問題分析不清楚,給出了錯誤的計算公式;2)不用數學方法,而試圖用枚舉所有雞和兔的個數來求解此題,造成超時;3)試圖把所有輸入先存儲起來,再輸出,開的數組太小,因數組越界產生運行錯;4)在每行輸出末尾缺少換行符;5)對輸入輸出語法不熟悉導致死循環(huán)或語法錯。2.2例題:棋盤上的距離國際象棋的棋盤是黑白相間的8*8的方格,棋子放在格子中間。王、后、車、象的走子規(guī)則如下:?王:橫、直、斜都可以走,但每步限走一格。?后:橫、直、斜都可以走,每步格數不受限制。?車:橫、豎均可以走,不能斜走,格數不限。?象:只能斜走,格數不限。寫一個程序,給定起始位置和目5、標位置,計算王、后、車、象從起始位置走到目標位置所需的最少步數。輸入輸出要求輸入數據第一行是測試數據的組數t(0<=t<=20)。以下每行是一組測試數據,每組包括棋盤上的兩個位置,第一個是起始位置,第二個是目標位置。位置用"字母-數字"的形式表示,字母從“a”到“h”,數字從“1”到“8”。輸出要求對輸入的每組測試數據,輸出王、后、車、象所需的最少步數。如果無法到達,就輸出”Inf".輸入樣例2a1c3f5f8輸出樣例2121311Inf解題思路這個問題是給定一個棋盤上的起始位置和終止位置,分別判斷王、后、車、象從起始位置到達終止位置需要的步數。首先,王、后、車、象彼此獨立,分別考慮就可以6、了。所以這個題目重點要分析王、后、車、象的行走規(guī)則特點,從而推出它們從起點到終點的步數。王的行走規(guī)則我們假設起始位置與終止位置在水平方向上的距離是x,它們在豎直方向上的距離是y。根據王的行走規(guī)則,他可以橫、直、斜走,每步限走一格,所以需要的步數是min(x,y)+abs(x-y)即x,y中較小的一個加上x與y之差的絕對值,即x,y的最大值。后行走的規(guī)則根據后行走的規(guī)則,她可以橫、直、斜走,每步格數不受限制若兩個格子同行(x=0)、同列(y=0)或同斜線(x=y)所需步數為1;否則所需步數為2;12341234ST車行走的規(guī)則根據車行走的規(guī)則,它可以橫、豎走,不能斜走,格數不限若兩個格子同行7、(x=0)或同列(y=0)需要步數為1;否則需要步數為2;12341234ST象行走的規(guī)則根據象行走的規(guī)則,它可以斜走,格數不限。(1)棋盤上的格點可以分為兩類,第一類是它的橫坐標和縱坐標之差為奇數,第二類是橫縱坐標之差為偶數。(2)對于只能斜走的象,它每走一步,因為橫縱坐標增加或減小的絕對值相等,所以橫坐標和縱坐標之差的奇偶性無論如何行走都保持不變。象行走的規(guī)則如果:起始點和終止點分別屬于兩類點它們之間不能相互有到達否
4、是一個數學計算題,出錯有一下幾種情況:1)因為對問題分析不清楚,給出了錯誤的計算公式;2)不用數學方法,而試圖用枚舉所有雞和兔的個數來求解此題,造成超時;3)試圖把所有輸入先存儲起來,再輸出,開的數組太小,因數組越界產生運行錯;4)在每行輸出末尾缺少換行符;5)對輸入輸出語法不熟悉導致死循環(huán)或語法錯。2.2例題:棋盤上的距離國際象棋的棋盤是黑白相間的8*8的方格,棋子放在格子中間。王、后、車、象的走子規(guī)則如下:?王:橫、直、斜都可以走,但每步限走一格。?后:橫、直、斜都可以走,每步格數不受限制。?車:橫、豎均可以走,不能斜走,格數不限。?象:只能斜走,格數不限。寫一個程序,給定起始位置和目
5、標位置,計算王、后、車、象從起始位置走到目標位置所需的最少步數。輸入輸出要求輸入數據第一行是測試數據的組數t(0<=t<=20)。以下每行是一組測試數據,每組包括棋盤上的兩個位置,第一個是起始位置,第二個是目標位置。位置用"字母-數字"的形式表示,字母從“a”到“h”,數字從“1”到“8”。輸出要求對輸入的每組測試數據,輸出王、后、車、象所需的最少步數。如果無法到達,就輸出”Inf".輸入樣例2a1c3f5f8輸出樣例2121311Inf解題思路這個問題是給定一個棋盤上的起始位置和終止位置,分別判斷王、后、車、象從起始位置到達終止位置需要的步數。首先,王、后、車、象彼此獨立,分別考慮就可以
6、了。所以這個題目重點要分析王、后、車、象的行走規(guī)則特點,從而推出它們從起點到終點的步數。王的行走規(guī)則我們假設起始位置與終止位置在水平方向上的距離是x,它們在豎直方向上的距離是y。根據王的行走規(guī)則,他可以橫、直、斜走,每步限走一格,所以需要的步數是min(x,y)+abs(x-y)即x,y中較小的一個加上x與y之差的絕對值,即x,y的最大值。后行走的規(guī)則根據后行走的規(guī)則,她可以橫、直、斜走,每步格數不受限制若兩個格子同行(x=0)、同列(y=0)或同斜線(x=y)所需步數為1;否則所需步數為2;12341234ST車行走的規(guī)則根據車行走的規(guī)則,它可以橫、豎走,不能斜走,格數不限若兩個格子同行
7、(x=0)或同列(y=0)需要步數為1;否則需要步數為2;12341234ST象行走的規(guī)則根據象行走的規(guī)則,它可以斜走,格數不限。(1)棋盤上的格點可以分為兩類,第一類是它的橫坐標和縱坐標之差為奇數,第二類是橫縱坐標之差為偶數。(2)對于只能斜走的象,它每走一步,因為橫縱坐標增加或減小的絕對值相等,所以橫坐標和縱坐標之差的奇偶性無論如何行走都保持不變。象行走的規(guī)則如果:起始點和終止點分別屬于兩類點它們之間不能相互有到達否
此文檔下載收益歸作者所有