多喝嘤料

2019-12-03

多喝嘤料

来源:牛客网

题目描述

卖嘤料 卖嘤料~~

3 个空瓶换一瓶。

4 个瓶盖换一瓶。

问已购买 n 瓶嘤料的 QAQ 能喝到多少瓶嘤料?

输入描述

第一行一个正整数 T(0<T<=100)

随后 T 行,每行一个整数 n(0<=n<=1000000)

输出描述

第一行一个正整数 T(0<T<=100)

随后 T 行,每行一个整数 n(0<=n<=1000000)

示例 1

输入
3
1
2
10
输出
1
2
22

题解

这里我们用 Java 语言来示范一下(Ps:我最近在学 Java,所以用 Java 来小试牛刀)

下面直接给出代码

import java.util.Scanner;

public class Main
{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int T=sc.nextInt();
		while(T--!=0)
		{
			int n=sc.nextInt();
			long ans=0L;
			long pg=n;
			long kp=n;

			ans+=n;
			while(kp>=3||pg>=4)
			{
				long res=kp/3+pg/4;
				kp=res+kp%3;
				pg=res+pg%4;
				ans+=res;
			}
			System.out.println(ans);
		}
	}
}

补充一下 C++的代码

#include <iostream>
using namespace std;
int main(){
    int T;
    cin>>T;
    while(T--){
        int n;
        cin>>n;
        long long ans=n,kp=n,pg=n;
        while(kp>=3||pg>=3){
            long long res=kp/3+pg/4;
            kp=res+kp%3;
            pg=res+pg%4;
            ans+=res;
        }
        cout<<ans<<endl;
    }
    return 0;
}
算法

高精度算法

回文串