#include<stdio.h>
int a[110];
int main() {
int t, ans;
scanf("%d",&t);
int n, m, k,i;
while (t--) {//测试组数,挨个测试
scanf("%d%d%d",&n,&m,&k);//获取楼的层数,阿姨的体力值,阿姨抱被子上楼消耗的体力值
ans=0;
int x = m;//设置新变量测试
for ( i = 1; i <= n; i++)
scanf("%d",&a[i]);//将楼每层被子数量储存到数组里
for ( i = 1; i <= n; i++) {//循环测试
if (x -a[i]>=0) {//如果阿姨的体力值减去拿第i层楼被子数量的体力有余
x -= a[i];//求剩下的体力
if (i == n ) {//如果第i层为总层数(即最高层)
ans++;//阿姨拿被子的次数+1
break; //循环结束
}
if (x -k>=0)//如果剩下的体力>k
x -= k;//求爬到楼上后剩下的体力
else {
x = m;//如果不够
ans++;//则计算为一次次数
}
}
else
{//如果阿姨的体力值减去拿第i层的被子数量所耗体力无余->第i层有被子拿不了
a[i] = a[i] - x;
x = m;
ans++;
i--;//阿姨下楼一次,重新上到第i层拿剩下的被子,计算为一次次数
}
}
printf("%d\n", ans);
}
}
总结:
学习多组输入的模式
阅读题的思路,学习发现如何满足测试要求并通过代码体现,基础要求是学会发现考察内容,就有思路了。比如最简单的测试需要循环测试则考虑for循环。
不能被抽象的题吓到。