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