題目描述 班主任給小玉一個任務,到文具店裡買儘量多的簽字筆。已知一隻簽字筆的價格是1元9角,而班主任給小玉的錢是a元b角,小玉想知道,她最多能買多少只簽字筆呢。 輸入輸出格式 輸入格式: 輸入的數據,在一行內,包括兩個整數,依次表示a和b,a<=10000,b<=9。 輸出格式: 輸出一個整數,表示 ...
題目描述
班主任給小玉一個任務,到文具店裡買儘量多的簽字筆。已知一隻簽字筆的價格是1元9角,而班主任給小玉的錢是a元b角,小玉想知道,她最多能買多少只簽字筆呢。
輸入輸出格式
輸入格式:
輸入的數據,在一行內,包括兩個整數,依次表示a和b,a<=10000,b<=9。
輸出格式:
輸出一個整數,表示小玉最多能買多少只簽字筆。
輸入輸出樣例
輸入樣例#1:10 3輸出樣例#1:
5
題解裡面都是把1.9看成19去做,
這樣確實非常方便。
但是我們也可以直接拿1.9去做,這裡要牽扯到強制類型轉換的問題。
我們首先把錢的數額保存成double類型。
輸出的時候先轉換成double類型。
然後再轉換成int類型。
這樣就實現了自動的想下取整
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 using namespace std; 6 void read(int &n) 7 { 8 char c='+';int x=0;bool flag=0; 9 while(c<'0'||c>'9') 10 {c=getchar();if(c=='-')flag=1;} 11 while(c>='0'&&c<='9') 12 x=x*10+(c-48),c=getchar(); 13 flag==1?n=-x:n=x; 14 } 15 double now=0; 16 int main() 17 { 18 double n,m; 19 cin>>n>>m; 20 now=n+(m*0.1); 21 printf("%d",(int)(double)(now/1.9)); 22 return 0; 23 }