NC50053. 多喝嘤料
描述
输入描述
第一行一个正整数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)