这个题目需要简化,就是上一次的和乘上(k1+k2),a1*k1+a1*k2+a2*k1+a2*k2....=sum(k1*k2)
#include <stdio.h>
int main(){
int t, T, n, i;
double k1, k2, k, sum;//不要忘记忽略小数
int a[10010];
scanf("%d", &T);//循环次数
for (t = 1; t <= T; t++){
scanf("%d%lf%lf%lf", &n, &k1, &k2, &k);
sum = 0;
for (i = 1; i <= n; i++){//求出它所有器官之和
scanf("%d", &a[i]);
sum = sum + a[i];
}
if (sum > k){//如果器官的初始值之和直接大于k,那么直接输出
printf("Case #%d: 0\n",t);
continue;
}
if (k1 + k2 <= 1){//如k1加k2小于等于1,那么器官只和不可能大于k。
printf("Case #%d: inf\n", t);
continue;
}
int ans = 0;
while (1){//一直循环
ans++;
sum = sum * (k1 + k2);
if (sum > k)//一直到大于k时结束
break;
}
printf("Case #%d: %d\n", t, ans);
}
return 0;
}