




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2012程序設(shè)計競賽基礎(chǔ)實訓(xùn)82 39 臺球碰撞 LW)(的矩形。,在平面直角坐標系下,臺球桌是一個左下角在(0,0),右上角在xyR的圓形母球放在臺球桌上(整個球都在臺球桌內(nèi))半徑為,。),有一個球心在(bxb)球沿極角為正半軸逆時針旋轉(zhuǎn)到此射線的角度為的射線(即:受撞擊后,以初速度v飛出。因球與桌面的磨擦,球作的加速度為a的勻減速率運動,每次碰到球桌邊框時均發(fā)生完全彈性碰撞(反射角等于入射角)。 試求球停止時球心所在位置。 輸入: l=180,w=120,x=35,y=40,r=5,b=30,v=27,a=6 原題: LW),右上角在(0,0),(的矩形。在平面直角坐標系下,臺球桌是一個左
2、下角在xyR的圓形母球放在臺球桌上(整個球都在臺球桌內(nèi))半徑為(有一個球心在。,),axa)(即:正半軸逆時針旋轉(zhuǎn)到此射線的角度為球沿極角為受撞擊后,的射線飛出,每次碰到球桌時均發(fā)生完全彈性碰撞(球的速率不變,反射角等于入射角)。 sv ,個時間單位之后球心在什么地方?如果球的速率為 輸入個正整數(shù)8輸入文件最多包含25組測試數(shù)據(jù),每個數(shù)據(jù)僅一行,包含5aWRLxRRsxyRavLWyRRLW360, =,-,-,(100=, ,0=10, 1=5, , =,=,5svaxyRvsLW表示輸入結(jié)束,你的程序=1=,=10),含義見題目描述。=0= 不應(yīng)當處理這一行。 輸出yxxy。, ,表明球心
3、坐標為()對于每組數(shù)據(jù),輸出僅一行,包含兩個實數(shù)yx 和應(yīng)四舍五入保留兩位小數(shù)。 樣例輸入 樣例輸出 100 100 80 10 5 90 2 23 80.00 56.00 110 100 70 10 5 180 1 9999 71.00 10.00 0 0 0 0 0 0 0 0 設(shè)計要點: (1) 確定球心區(qū)域 設(shè)球心座標為(x,y),則有球心矩形區(qū)域:x1xx2,y1yy2 其中:x1=r,x2=l-r; y1=r,y2=w-r (2) 沒撞擊時球位置 設(shè)開始時球心位于(x0,y0),球沿極角為a的射線射出,球的速率為v,s個時間單位之后球心在(x,y): x=x0+v*s*cos(a*
4、3.14159/180) y=y0+v*s*sin(a*3.14159/180) (3) 撞擊軸對稱 若球與右豎邊(x2)撞擊,撞擊后橫月座標為:x=2*x2-x y=2*y2-y )撞擊,撞擊后縱月座標為:y2若球與上橫邊( 程序設(shè)計: / 臺球碰撞 #include #include void main() double l,w,r,a,v,s,x,y,x1,x2,y1,y2; printf( 請確定球臺邊框(l,w): ); scanf(%lf,%lf,&l,&w); printf( 請確定球心開始位置(x,y): ); scanf(%lf,%lf,&x,&y); printf( 請確定
5、球半徑r: ); scanf(%lf,&r); printf( 請確定射擊角度a: ); scanf(%lf,&a); printf( 請確定射擊速度v: ); scanf(%lf,&v); printf( 請確定時間s: ); scanf(%lf,&s); x1=r;x2=l-r;y1=r;y2=w-r; x=x+v*s*cos(a*3.1415926/180); y=y+v*s*sin(a*3.1415926/180); while(xx2 | yy2) if(xx2) x=2*x2-x; if(xy2) y=2*y2-y; if(yy1) y=2*y1-y; printf( 所求位置為:
6、(%.2f,%.2f).n,x,y); 請確定球臺邊框(l,w): 130,110 請確定球心開始位置(x,y): 30,40 請確定球半徑r: 5 請確定射擊角度a: 30 請確定射擊速度v: 20 請確定時間s: 20 所求位置為:(113.59,40.00). LW),右上角在(,引申:在平面直角坐標系下,臺球桌是一個左下角在(0,0)xy),半徑為r的矩形。有一個球心在(,的圓形母球放在臺球桌上(整個球都在b的射線(即:與正半軸逆時針旋轉(zhuǎn)到此射臺球桌內(nèi))。受撞擊后,球沿極角為b)以初速度v飛出。因球與桌面的磨擦,球作的加速度為a的勻減線的角度為速率運動,每次碰到球桌邊框時均發(fā)生完全彈性
7、碰撞(反射角等于入射角)。 試求球停止時球心所在位置。 解:球作的初速度為v0,加速度為a的勻減速率運動,設(shè)t時刻球的速度為vt,則 vt=v0-a*t 停止時vt=0,則運行時間為:t=v0/a 球運行距離為s=v0*t-a*t*t/2=v0*v0/2/a / 臺球碰撞 #include #include void main() double l,w,r,a,b,v,s,x,y,x1,x2,y1,y2; printf( 請確定球臺邊框(l,w): ); scanf(%lf,%lf,&l,&w); printf( 請確定球心開始位置(x,y): ); scanf(%lf,%lf,&x,&y);
8、 printf( 請確定球半徑r: ); scanf(%lf,&r); printf( 請確定射擊角度b: ); scanf(%lf,&b); printf( 請確定射擊初速度v: ); scanf(%lf,&v); printf( 請確定勻減速的加速度a: ); scanf(%lf,&a); x1=r;x2=l-r;y1=r;y2=w-r; s= v*v/2/a; x=x+s*cos(b*3.1415926/180); y=y+s*sin(b*3.1415926/180); while(xx2 | yy2) if(xx2) x=2*x2-x; if(xy2) y=2*y2-y; if(y1)
9、,求出其平方數(shù)對指定范圍x,y內(nèi)的每一個整數(shù)a ;的平方s的尾部c=s%b的位數(shù)計算aw,同時計算b=10w,a 則輸出守形數(shù)。,c,若a=c比較a 程序?qū)崿F(xiàn)2) ( 內(nèi)的守形數(shù)/ 求x,y#include void main() long int a,b,c,k,s,x,y; .); 求區(qū)間x,y中的守形數(shù) printf( 請輸入整數(shù) printf( scanf(%ld,%ld,&x,&y); for(a=x;a0) b=b*10;k=k/10; 的尾部的平方數(shù)s c=s%b; / c為a if(a=c) printf(%ld2=%ld n,a,s); 程序運行結(jié)果3()請輸入整數(shù)中的守形數(shù)
10、.求區(qū)間x,y252=625 762=5776 3762=141376 6252=390625 93762=87909376 2. 探索n位守形數(shù) (1) 求解要點 為了求更多位數(shù)的守形數(shù),可應(yīng)用守形數(shù)的性質(zhì):一個m位守形數(shù)的尾部m-1位數(shù)也是一個守形數(shù)。 道理很簡單,a是一個m位數(shù),a的平方數(shù)尾部的m-1位僅由a的尾部m-1位決定而與a的其他位無關(guān)。 實施易知一位守形數(shù)有三個:1,5,6。則二位守形數(shù)的個位數(shù)字只可能是1,5,6這三個數(shù)字。根據(jù)這一思路,我們可應(yīng)用遞推求出多位守形數(shù)。 (2) 程序設(shè)計 / 求n位守形數(shù) #include void main() int n,d,k,j,i,t
11、,m,w,z,u,v,a500,b500,c500; printf(=);scanf(%d,&n); for(d=1;d=9;d+) for(k=1;k=500;k+) ak=0;bk=0;ck=0; a1=d; / 給個位數(shù)賦值 for(k=2;k=n;k+) for(j=0;j=9;j+) ak=j;v=0; for(i=1;i=k;i+) ci=0; / 探索a(k) for(i=1;i=k;i+) for(z=0,t=1;t=k;t+) u=ai*at+z;z=u/10; bi+t-1=u_x0010_; / 計算平方 for(w=0,m=i;m=k;m+) u=cm+bm+w; w=
12、u/10;cm=u_x0010_; for(i=1;i=1;k-) printf(%d,ak); printf(); (3) 程序運行示例 運行程序, 輸入n=30,得30位守形數(shù) 5結(jié)尾的30守形數(shù): 106619977392256259918212890625 6結(jié)尾的30守形數(shù): 893380022607743740081787109376 41 奇數(shù)序列運算式 在由指定相連奇數(shù)組成的序列的每相鄰兩項中插入運算符號: 若相鄰兩項都是合數(shù),則兩項中插入“-”號; 若相鄰兩項一項合數(shù)一項素數(shù),則兩項中插入“+”號; ”號;*若相鄰兩項都是素數(shù),則兩項中插入乘號“輸入奇數(shù)b,c(bc),完成b
13、,c中奇數(shù)序列的運算式,并計算該式的運算結(jié)果。 例如b=31,c=45,完成運算式為: 31+33-35+37+39+41*43+45=1913 測試數(shù)據(jù): (1) b=3,c=51 (2) b=2011,c=2029 / 奇數(shù)序列運算式 #define N 30000 #include #include void main() int b,c,f,m,n,k,i,j,aN; long t,s; printf( 請輸入首尾奇數(shù)b,c(bc): ); scanf(%d,%d,&b,&c); m=b-2;n=(c-m)/2; / 奇數(shù)序列2k+m (k=1,2.,n) for(k=1;k=n+1;
14、k+) ak=0; for(k=1;k=n;k+) for(t=0,j=3;j=sqrt(2*k+m);j+=2) if(2*k+m)%j=0) t=1;break; if(t=0) ak=1; / 標記第k個奇數(shù)2k+m為素數(shù) printf( %d,b); for(i=2;i=n;i+) / 完成表達式 if(ai-1+ai=0) printf(-%d,2*i+m); / 插入減號 if(ai-1+ai=1) printf(+%d,2*i+m); / 插入加號 if(ai-1+ai=2) printf(*%d,2*i+m); / 插入乘號 s=0; a0=1-a1; an+1=0; for(
15、i=1;i=n;i+) / 計算表達式結(jié)果 t=2*i+m;f=i; while(ai+ai+1=2) i+;t=t*(2*i+m); / 相鄰項均為素數(shù)時相乘 if(af-1+af=0) s=s-t; if(af-1+af=1) s=s+t; printf(=%d.n,s); 請輸入首尾奇數(shù)b,c(bc): 3,99 12857 請輸入首尾奇數(shù)b,c(bc): 2001,2029 4114752 42 構(gòu)建旋轉(zhuǎn)方陣 2 從外層至中心按順時針方向螺旋排列所成的nn2,.,n方把整數(shù)1,陣,?稱順轉(zhuǎn)n階方陣;按逆時針方向螺旋排列所成的稱逆轉(zhuǎn)n階方陣。 1 24 23 22 21 20 19 2
16、25 40 39 38 37 18 3 26 41 48 47 36 17 4 27 42 49 46 35 16 5 28 43 44 45 34 15 6 29 30 31 32 33 14 7 8 9 10 11 12 13 上圖為逆轉(zhuǎn)7階方陣。 設(shè)計程序選擇分別打印逆轉(zhuǎn)10階方陣與順轉(zhuǎn)15階方陣。 (1) 設(shè)計要點 打印二種旋轉(zhuǎn)方陣關(guān)鍵在于數(shù)組元素的賦值以及賦值與打印的巧妙結(jié)合。 對應(yīng)方陣的n行n列設(shè)置二維數(shù)組a(n,n)。令m=int(n/2),當n為偶數(shù)時?,方陣共m圈。當n為奇數(shù)時,方陣除m圈外正中間還有一個數(shù)a(m+1,m+1)=n*n。 對于m圈,每圈有上下左右四條邊。最外圈
17、定義為第1圈,從外往內(nèi)依次定義為第2圈,.第i圈每邊有n-2i+1個數(shù)。 為了實現(xiàn)旋轉(zhuǎn)準確對各圈各邊的每一個數(shù)組元素賦值,我們引入中間變量s,t: s=n-2i+1 t=t+4s (t置初值0) 設(shè)置i(1m)循環(huán)對第i圈操作,設(shè)置j(in-i)循環(huán)對第i圈的四條邊的n-2i+1個元素操作。i,j二重循環(huán)可對方陣的每一元素賦值。 在順時針轉(zhuǎn)方陣中,具體賦值為: 上行為a(i,j)=t+1-i+j:其中+j體現(xiàn)往右元素值遞增1;+t-i體現(xiàn)隨圈數(shù)i增加數(shù)值增加值;而1為具體調(diào)整數(shù)。 右列為a(j,n+1-i)=t+s+1+j-i,即在a(i,j)的基礎(chǔ)上增s。 下行為a(n+1-i,j+1)=t
18、+3*s-j+i:其中-j體現(xiàn)往左元素值遞增1;+t+i?體現(xiàn)隨圈數(shù)i增加數(shù)值增加值;而3*s為具體調(diào)整數(shù)。 左列為a(j+1,i)=t+4*s-j+i,即在a(n+1-i,j+1)基礎(chǔ)上增s。 在逆時針轉(zhuǎn)方陣中,還是上述賦值,只是打印輸出時把行列互換。這樣處理是巧妙的,較為簡便。 (2) 程序?qū)崿F(xiàn) / 旋轉(zhuǎn)方陣 #include #include void main() int i,j,m,n,t,s,z,a2020; printf( 輸入方陣階n:); scanf(%d,&n); printf( 方陣有以下兩種旋轉(zhuǎn)方式:n); printf( 1: 逆時針轉(zhuǎn) 2: 順時針轉(zhuǎn)n); prin
19、tf( 選擇旋轉(zhuǎn)方式代碼: ); scanf(%d,&z); m=n/2;t=0; am+1m+1=n*n; for(i=1;i=m;i+) / 按規(guī)律給a數(shù)組賦值 s=n+1-2*i; for(j=i;j=n-i;j+) aij=t+1-i+j; ajn+1-i=t+s+1+j-i; an+1-ij+1=t+3*s-j+i; aj+1i=t+4*s-j+i; t=t+4*s; printf( 所求旋轉(zhuǎn)方陣為:); for(i=1;i=n;i+) printf(); for(j=1;j=n;j+) / 按座標輸出方陣 if(z%2=0) printf(M,aij); else printf(M
20、,aji); (3) 程序運行示例與變通 輸入方陣階n:7 方陣有以下兩種旋轉(zhuǎn)方式: 1: 逆時針轉(zhuǎn) 2: 順時針轉(zhuǎn) 選擇旋轉(zhuǎn)方式代碼: 1 所求旋轉(zhuǎn)方陣為: 1 24 23 22 21 20 19 2 25 40 39 38 37 18 3 26 41 48 47 36 17 4 27 42 49 46 35 16 5 28 43 44 45 34 15 6 29 30 31 32 33 14 7 8 9 10 11 12 13 輸入方陣階n:8 方陣有以下兩種旋轉(zhuǎn)方式: 順時針轉(zhuǎn) 2: 逆時針轉(zhuǎn) 1: 選擇旋轉(zhuǎn)方式代碼: 2 所求旋轉(zhuǎn)方陣為: 1 2 3 4 5 6 7 8 28 29 30 31 32 33 34 9 27 4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)作物種子買賣合同(蔬菜類)6篇
- 銷售業(yè)務(wù)外包合作協(xié)議
- 醫(yī)院信息保密承諾協(xié)議書
- 產(chǎn)品物流配送計劃書
- 智能電網(wǎng)改造合作協(xié)議
- 專業(yè)人力資源管理服務(wù)合同
- 招商代理委托協(xié)議書
- 2025年博爾塔拉道路貨運輸從業(yè)資格證模擬考試題庫
- 小學(xué)英語試卷總體評價
- 高壓化成箔競爭策略分析報告
- 第一課+追求向上向善的道德【中職專用】中職思想政治《職業(yè)道德與法治》高效課堂(高教版2023·基礎(chǔ)模塊)
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗人員理論考試題庫及答案
- 《母嬰護理》課程標準
- 軟基處治面積四方聯(lián)測測量記錄表(清淤后)
- 考試通用答題卡word模板
- 尾礦庫安全檢查表
- 解除、終止勞動合同通知書范本
- 深信服桌面云方案
- 2021年深圳實驗學(xué)校初中部七年級入學(xué)分班考試數(shù)學(xué)試卷及答案解析
- ??怂箍等鴺藴y量儀的使用課件
- 高血壓臨床路徑
評論
0/150
提交評論