日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

信息学奥赛一本通 1050:骑车与走路 | OpenJudge NOI 1.4 12

發布時間:2025/3/17 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 信息学奥赛一本通 1050:骑车与走路 | OpenJudge NOI 1.4 12 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【題目鏈接】

ybt 1050:騎車與走路
OpenJudge NOI 1.4 12:騎車與走路

【題目考點】

1. 兩浮點型量判斷相等

由于浮點型量在內存中以二進制形式表示,很多數據并不能精確表示(如0.3),實際存儲的是一個近似值。而由于計算過程不同,對于數學意義上相等的兩個數字,在實際存儲時會有差別,以至于用==判定兩個數是否相等時,表達式的值是false。
例:

double a = 0.3, b = 0.1+0.2;cout<<(a==b);//會輸出0,表示在程序層面,不認為a與b是相等的。

要解決這一問題,就是要忽略浮點型量之間的細微差別。
只要兩個浮點型量之間相差的值很小,就認為是相等的。
判斷浮點型量a,b是否相等的表達式:fabs(a-b) < 0.00001(右側是一個很小的數字即可。)

2. if…else if…else語句

【解題思路】

設總距離為s米

  • 已知步行速度1.2米每秒,步行所用時間tw=s/1.2t_w = s / 1.2tw?=s/1.2
  • 已知騎車前后所用的時間為27+23=5027+23=5027+23=50秒,騎車速度3米每秒,騎車所用時間tb=s/3+50t_b = s / 3 + 50tb?=s/3+50
  • 比較twt_wtw?tbt_btb?,輸出對應的字符串。
    由于浮點型量相等時可能被程序認為是不等的(如數學上a等于b但實際判斷時a>b返回true),所以應先判斷二者是否相等。

【題解代碼】

解法1:

#include<bits/stdc++.h> using namespace std; int main() {double s, tw, tb;//s:距離,tw:走路所用時間,tb:騎車所用時間 cin>>s;tw = s / 1.2;tb = 27 + 23 + s / 3;if (fabs(tw - tb) < 0.0001)//判斷浮點型量tw與tb是否相等 cout<<"All";else if (tw > tb)//走路用的時間比騎車多 cout<<"Bike";//騎車更快 else if (tw < tb)//騎車用的時間比走路更多 cout<<"Walk";//走路更快 return 0; }

總結

以上是生活随笔為你收集整理的信息学奥赛一本通 1050:骑车与走路 | OpenJudge NOI 1.4 12的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。