牛客巅峰赛青铜白银场B
热心的牛牛
https://ac.nowcoder.com/acm/contest/9223/A
b
两边之和<=第三边的都不能组成三角形所以是1 1 2 3 5 8......
最小的划分就是这样,然后再开个前缀和存一下,最后和a比一下就出来了。
class Solution { public: /** * * @param a long长整型 木棒的长度 * @return int整型 */ #define ll long long const long long N=1e2+5; int stick(long long a) { // write code here ll num[N],sum[N],i; num[1]=1;num[2]=1; sum[1]=1;sum[2]=2; for(i=3;num[i]<=a;i++) { num[i]=num[i-1]+num[i-2]; sum[i]=sum[i-1]+num[i]; if(sum[i]>a) return i-1; } // return a; } };