列表

详情


NC50053. 多喝嘤料

描述

卖嘤料~~~卖嘤料~~~
3个空瓶换一瓶。
4个瓶盖换一瓶。
问已购买n瓶嘤料的QAQ能喝到多少瓶嘤料?

输入描述

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

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

输出描述

T行,每行一个整数表示结果。

示例1

输入:

3
1
2
10

输出:

1
2
22

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 3ms, 内存消耗: 376K, 提交时间: 2020-07-28 12:41:51

#include<bits/stdc++.h>
using namespace std;
int main(){
	int t;
	cin>>t;
	while(t--){
		int n,m,a,b;
		cin>>n;
		a=n,b=n;
		while(1){
			m=a/3+b/4;
			if(m==0)break;
			n+=m;
			a=a%3+m;
			b=b%4+m;
		}
		cout<<n<<endl;
	}
} 

C++ 解法, 执行用时: 5ms, 内存消耗: 384K, 提交时间: 2022-04-03 21:57:01

#include<cstdio>
int main()
{
	int t,n;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		int ans=n;
		int x=n,y=n;
		while(x>=3||y>=4)
		{
			n=x/3+y/4;
			ans+=n;
			x%=3;y%=4;
			x+=n;y+=n;
		}
		printf("%d\n",ans);
	}
}

pypy3 解法, 执行用时: 81ms, 内存消耗: 29492K, 提交时间: 2022-08-29 20:15:36

for _ in range(int(input())):
    ans = int(input())
    a = b = ans
    while a >=3 or b >= 4:
        t = a // 3 + b // 4
        a = a % 3 + t
        b = b % 4 + t
        ans += t
    print(ans)

Python3(3.5.2) 解法, 执行用时: 49ms, 内存消耗: 3408K, 提交时间: 2019-07-15 16:00:19

T=int(input())
for _ in range(T):
	ans=int(input())
	a=ans
	b=ans
	while a>2 or b>3:
		t=a//3+b//4
		a%=3;b%=4
		a+=t;b+=t;ans+=t
	print(ans)

上一题