ACM_滚动AC

滚动AC

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

小光最近拉了几个同学入ACM的坑,为鼓励A题,就增加奖励制度:每AC三道就送一道,且可以循环叠加。已知小X某天连续A了n道题,求他最后总共A了多少题。

Input:

输入一个数字T(T<50),接下来T行每行一个数字n(0<=n<=10^7)。

Output:

输出A题总数

Sample Input:

2
100
101

Sample Output:

149
151
解题思路:解法:n每次加上m/3道奖励的题数,并且m变成m/3+m%3,循环直到m<3为止,n即为A题总数,水过。
AC代码:
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main(){
 4     int t,n,m;
 5     cin>>t;
 6     while(t--){
 7         cin>>n;m=n;
 8         while(1){
 9             n+=m/3;
10             m=(m/3)+(m%3);
11             if(m<3)break;//当m小于3就没有题可以送了,直接退出循环
12         }
13         cout<<n<<endl;
14     }
15     return 0;
16 }

猜你喜欢

转载自www.cnblogs.com/acgoto/p/9231256.html