题目:
题意分析:(多项式解读)
有一个多项式,多项式有0,1,2,……,n次项共n+1项,
第一行给出 n
第二行给出 a0,a1,a2……an 共n+1个数, ai 表示第i次项,即 x^i 项的系数。
求最大的h,幂次超过h的项的系数和不少于h,
即 ah * x^h + a(h+1) * x^(h+1) + …… + an * x^n 中的
(ah + a(h+1) + a(h+2)+……+an >= h)
思路:
从大到小,循环求解一遍
#include <iostream>
#include <cstdio>
using namespace std;
#define LL long long
#define N 200005
int cit[N];
int main()
{
int n;
while(~scanf("%d",&n)) {
for(int i=0;i<=n;i++) {
scanf("%d",&cit[i]);
}
//从n次项 到 i次项 的 累计系数和
LL sum = 0;
for(int i=n;i>=0;i--) {
sum += cit[i];
//(ah + a(h+1) + a(h+2)+……+an >= h) 即为答案
if(sum >= i) {
printf("%d\n",i);
break;
}
}
}
return 0;
}