Suneast & Daxia (规律)

Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u

[]   [Go Back]   [Status]  

Description

Daxia is so cute that people loves it so much.

Everyone wants to buy Daxia from Suneast (a business man who sells Daxia).

Suneast is a strange business man. He sells Daxia in a random price from 1, 2, 3, 4, 5…, n.

We now consider the price of Daxia is N $. If a custom has M $(M>=N) in hand and buy Daxia using Q $(N<=Q<=M), Suneast needs to return R=(Q-N) $ to the custom. Suneast is so a strange business man that he take the Q $, and he refuses to look for a change if the custom can’t show him R$ in his hand.

Now, we want to know how many pieces of money people should bring with to buy a Daxia with the exactly price. (The value of money can be any positive integers.)

Input

There are multiple test cases. Each test case has an integer n (1<=n<=254664467) in a single line.

Output

For each case, output a single integer in a line indicates the number of pieces of money people should bring with to buy a Daxia whose price is random from 1 to n.

Sample Input

1
2
5

Sample Output

1
2
3

Hint

In test case 1: people can bring 1 piece of money: 1$

In test case 2: people can bring 2 pieces of money:

In test case 3: people can bring 3 pieces of money:

呵呵,这题看师兄的才懂了!
 
 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <math.h>
 4 #include <string.h>
 5 #include <algorithm>
 6 using namespace std;
 7 int main()
 8 {
 9     int n;
10     long long  a[50];
11     a[0]=0;
12     for(int i=1;i<50;i++)a[i]=a[i-1]*3+1;
13     while(cin>>n)
14     {
15         for(int i=0;i<50;i++)
16         if(n<=a[i])
17         {
18             cout<<i<<endl;
19             break;
20         }
21     }
22 }
View Code
原文地址:https://www.cnblogs.com/ERKE/p/3582230.html