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位。

所以本题无法使用以上数据类型处理。
posted @ 2018-12-15 15:47  UUUUh  阅读(171)  评论(0编辑  收藏  举报