1. 程式人生 > >little w and Soda 牛客練習賽34

little w and Soda 牛客練習賽34

連結:https://ac.nowcoder.com/acm/contest/297/A
來源:牛客網


四級考完了,偷偷更一篇 qwq

題解:簡單推理題,自己在本子上畫一畫,規律就是如果錢n是偶數,就能買n個,奇數就只能買n-1,需要注意的是判奇偶根據字串最後一個字元判斷。字串處理,數字太大,100次方

程式碼:

#include <iostream>

using namespace std;
typedef long long ll;
int main(){
    int t;
    cin>>t;
    while(t--){
        string x;
        cin>>x;
        ll len=x.size();
        if((x[len-1]-'0')%2==1)
            x[len-1]--;
        cout<<x<<endl;
    }
    return 0;
}

題目描述

 

不知道你聽沒聽說過這樣一個腦筋急轉彎。

2元可以買一瓶汽水(玻璃瓶裝的),因為瓶身是玻璃瓶的比較貴,所以兩個瓶身可以換一瓶汽水。你現在有4元錢,問最多能喝到多少瓶汽水?

答案是4瓶。一開始先用4元錢買兩瓶汽水喝掉,再用這兩瓶的汽水的瓶身換一瓶喝到,最後還剩一個瓶身,這個時候再朝小賣部的老闆借一個瓶身。換一瓶汽水喝掉之後再還給他一個瓶身。

現在問題來了,一開始你有n元錢,然後你最多可以向老闆借一個瓶身(注意要還的),問你最多能喝到多少瓶汽水?

 

輸入描述:

第一行是一個正整數T(T<=100)表示有T組案例。

對於每組案例,輸入一個正整數(1<=n<=10^100)。

(請注意輸入資料的範圍,n有10的100次方那麼大)

輸出描述:

對於每組案例,輸出一行一個正整數表示最多能夠喝到的汽水數目

示例1

輸入

複製

3
1
2
1000000000000000000000000000000

輸出

複製

0
2
1000000000000000000000000000000

說明

1塊錢不能購買汽水,所以共喝到0瓶

2塊錢先買一瓶汽水,喝完以後再借一個空瓶,換一瓶,喝掉以後還給老闆。所以一共可以喝到2瓶。

備註:

請選用合理的資料型別。

int 型的最大值為2147483647。

long long 型的最大值為9223372036854775807。

float的有效數位為6位。

double的有效數位為12位。

所以本題無法使用以上資料型別處理。