codeVS之旅:2235 機票打折
阿新 • • 發佈:2018-12-14
.輸入機票原價(3到4位的正整數,單位:元),再輸入機票打折率(小數點後最多一位數字)。程式設計計算打折後機票的實際價格(單位:元。計算結果要將個位數四捨五入到十位數“元”)。輸入只有一行兩個數(兩數間用一個空格分隔),第一個為整數,表示機票原價,第二個整數或實數(如是實數,小數點後最多1位數字)表示打折率。
輸入樣例1:
888 7
輸出樣例1:
620
輸入樣例2:
1255 7
輸出樣例2:
880
PS:
最近開始重新練習演算法,也給自己定了一個小目標,每天至少刷一道演算法題,然後之前就在CODEVS註冊過帳號,但是沒有做過裡面的題,因此現在也是滕出時間來開始學習。
這道題我的程式碼是這樣的:
#include <iostream> #include<cstdio> using namespace std; int main() { int oldprice; double discount; cin>>oldprice; cin>>discount; int a = oldprice*discount; int yu = a%10; int chu = a/10; if(yu>=5) { chu = chu+1; } int yu2 = chu%10; int chu2 = chu/10; if(yu2>=5) { chu2 = (chu2+1)*10; }else { chu2 = chu2*10; } cout<<chu2; return 0; }
可以看出來程式碼寫的還是很亂,也沒有遵循程式碼規範。然後我去看了題解,因為我知道自己這個解決方法實在是有點蠢的,也抱著多學習別人思路的想法。並決定把好的思路學習一下。
思路:round函式的使用。
c++有一個四捨五入的函式,叫做round。(這個都不知道,覺得自己很呆。)
int main()
{
int a;
double b;
scanf("%d %lf",&a,&b);
printf("%d",(int)(round(a*b/100))*10);
return 0;
}