little w and Soda(思维题)
生活随笔
收集整理的這篇文章主要介紹了
little w and Soda(思维题)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
鏈接:https://ac.nowcoder.com/acm/contest/297/A
來源:牛客網(wǎng)
?
時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 262144K,其他語言524288K
64bit IO Format: %lld
題目描述
?
不知道你聽沒聽說過這樣一個腦筋急轉彎。
2元可以買一瓶汽水(玻璃瓶裝的),因為瓶身是玻璃瓶的比較貴,所以兩個瓶身可以換一瓶汽水。你現(xiàn)在有4元錢,問最多能喝到多少瓶汽水?
答案是4瓶。一開始先用4元錢買兩瓶汽水喝掉,再用這兩瓶的汽水的瓶身換一瓶喝到,最后還剩一個瓶身,這個時候再朝小賣部的老板借一個瓶身。換一瓶汽水喝掉之后再還給他一個瓶身。
現(xiàn)在問題來了,一開始你有n元錢,然后你最多可以向老板借一個瓶身(注意要還的),問你最多能喝到多少瓶汽水?
?
輸入描述:
第一行是一個正整數(shù)T(T<=100)表示有T組案例。對于每組案例,輸入一個正整數(shù)(1<=n<=10^100)。(請注意輸入數(shù)據(jù)的范圍,n有10的100次方那么大)
輸出描述:
對于每組案例,輸出一行一個正整數(shù)表示最多能夠喝到的汽水數(shù)目
示例1
輸入
復制
3 1 2 1000000000000000000000000000000
輸出
復制
0 2 1000000000000000000000000000000
說明
1塊錢不能購買汽水,所以共喝到0瓶2塊錢先買一瓶汽水,喝完以后再借一個空瓶,換一瓶,喝掉以后還給老板。所以一共可以喝到2瓶。
題解:一看題的數(shù)據(jù)如此大,我們肯定可以看出這個不能用我們熟悉的數(shù)據(jù)類型范圍來做,應該是思維題,我們通過舉幾個例子,若是奇數(shù),可以換的是奇數(shù)-1個,偶數(shù)為本身,判斷數(shù)字的奇偶只需看最后一位故,字符串模擬即可
代碼:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>using namespace std;int main()
{char a[105];int n;cin>>n;for(int t=0;t<n;t++){scanf("%s",a);if((a[strlen(a)-1]-'0')%2==0){puts(a);}else {a[strlen(a)-1]=a[strlen(a)-1]-1;puts(a);}}return 0;
} ?
轉載于:https://www.cnblogs.com/Staceyacm/p/10781936.html
總結
以上是生活随笔為你收集整理的little w and Soda(思维题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卫生纸原纸多少钱一吨
- 下一篇: 冰雪女皇买吗