1.第一题: 爬楼梯
我的代码:错在最后结果没加1
思路倒是没啥big问题:
2.题目分析:
(注意:x指的是爬半层楼)
题目描述
小可和达达不打算坐电梯,于是他们打算爬楼梯爬上来!小可和达达从第一层出发,小可记录了每一步迈出去的距离能够跨越多少个台阶,达达记录了迈多少个台阶能够到达下一个平台。
和很多大楼类似,每次爬楼梯到达一个平台,就需要转身再爬,到达两个平台代表上了一层楼。
请你计算一下,现在小可和达达已经到达了多少层!例如小可到了第八层,然后又向上爬了若干台阶,但是没有到第九层,那么输出第八层。
简单点来说:上一层平台x层 ,小可每次上ai层,求他最终在第几层上(注意:如果没上到第n层,就输出n-1层)
我的思路: 把ai累加起来,如果到了一个平台,就把累加器清空,计数器加加。
最终输出平台数/2,也就是层数.
说到这里,可能大家还是不知道我咋错的,所以给大家看看错误“呆蚂” 。
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
freopen("stair.in","r",stdin);
freopen("stair.out","w",stdout);
int a[100005],sum=0,n,h,ans=0;
cin>>n>>h;
for(int i=1;i<=n;i++){
cin>>a[i];
sum+=a[i];
if(sum>=(h*2)){
ans+=1;
sum-=h;
}
}
cout<<ans;
fclose(stdin);
fclose(stdout);
return 0;
}
//freopen这个小可爱是用来存文档的,不用管它
话不多说,不多说废话。
AC"代码":
主函数内容:
int n,x;
cin>>n>>x;
int a[10005];
int cnt=0,sum=0;
for(int i=1; i<=n; i++){
cin>>a[i];
sum+=a[i];
if(sum>=x){