NC207551. 牛牛切木棒
描述
输入描述
示例1
输入:
5
输出:
3
说明:
可以分成1 1 3三段Python(2.7.3) 解法, 执行用时: 22ms, 内存消耗: 5812K, 提交时间: 2020-11-20 20:07:28
# # # @param a long长整型 木棒的长度 # @return int整型 # class Solution: def stick(self, a): res = 2 x, y = 1, 1 cur = 2 while cur + x + y <= a: cur += x + y x, y = y, x + y res += 1 return res
C++(clang++11) 解法, 执行用时: 2ms, 内存消耗: 400K, 提交时间: 2020-11-20 20:14:09
class Solution { public: #define ll long long int stick(long long a) { ll x=1,y=1,tot=2; int cnt=2; while(1){ ll t=x; x=y,y=x+t; if(tot+y<=a) tot+=y,cnt++; else break; } return cnt; } };
Go(1.14.4) 解法, 执行用时: 2ms, 内存消耗: 896K, 提交时间: 2020-11-20 21:27:19
package main // github.com/EndlessCheng/codeforces-go func stick(A int64) int { f := [99]int{1: 1} for i := 2; i < 99; i++ { f[i] = f[i-1] + f[i-2] } i := 1 for a := int(A); a >= f[i]; i++ { a -= f[i] } return i - 1 }
C(clang11) 解法, 执行用时: 2ms, 内存消耗: 380K, 提交时间: 2020-11-20 20:52:51
int stick(long long a ) { long long x=1,y=1,z=1,sum=2,t=2; while(1){ x=y; y=z; z=x+y; sum+=z; t++; if(a==sum||sum+y+z>a) return t; } }
Python3(3.9) 解法, 执行用时: 30ms, 内存消耗: 6900K, 提交时间: 2020-11-20 21:25:37
# # # @param a long长整型 木棒的长度 # @return int整型 # class Solution: def stick(self , a ): m,n,k = 1,1,0 while m+n<a: m,n = n,m+n k += 1 return k