CSP-X 复赛模拟题1 吕亚亚补提报告


    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){
         

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值