选择结构习题-T排队领水题解

原题链接:https://ac.nowcoder.com/acm/problem/22240
来源:牛客网

题目描述

羊村的供水系统搞砸了,隔壁牛村捐赠的的矿泉水刚刚送达,村长让喜羊羊们排队领水,已知有n个羊村村民正在排队取水,懒羊羊不知道他在队伍的具体哪个位置,但他知道有不少于a个人在他前面,有不多于b个人在他后面,你能帮忙计算一下懒羊羊有多少个可能的位置吗?

输入描述:

输入一行包含三个整数n,a,b

0<= a,b < n <= 100

输出描述:

输出一行包含一个整数表示可能的位置数

示例1

输入

复制

3 1 1

输出

复制

2

示例2

输入

复制

10 1 3

输出

复制

4

思路:

如果不考虑第一个限制条件,根据可移动条件可以得到可能的位置为 b+1。懒洋洋从自身的位置到最后一个位置均可移动。加上限制条件后,需要结合总人数 n 进行判断,若 n-a <= b,则表明,懒洋洋后面最多只有 n-a-1 个人,加上自身位置,则可能的位置为 n-a。

代码:
#include <iostream>
using namespace std;

int main(){
    int n,a,b,position;
    scanf("%d%d%d",&n,&a,&b);
    if((a+b)>=n){
        position=n-a;
    }
    else{
        position=b+1;
    }
    printf("%d",position);
}

(借鉴的)第二种思考:

从b出发,因为a表示的是至少,那么站在后面的人数是一个具体的范围[0,b] 从b出发一直到0,看看条件能不能满足。

代码
#include <iostream>
using namespace std;
int main()
{
    int n,a,b,possible=0;
    cin >> n >> a >> b;
    for(int i=b;i>=0;i--)
    {
        if((i+1+a)<=n)
        {
            possible++;
        }

    }
    cout << possible;
    return 0;
}
全部评论

相关推荐

03-29 12:10
门头沟学院 C++
挣K存W养DOG:散漫消极者淘汰,一眼坑爹。实习几个月转正的时候说你加班太少,能力还行态度不够积极裁了,马上老实。
点赞 评论 收藏
分享
用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务