- 题目描述
牛牛想要挑战一下自己的勇气,于是打算去玩牛村的刺激过山车,牛村的刺激过山车一排只坐一个人,牛牛胆子比较小,所以他要求必须坐在前面有人或者后面有人的空位置。
牛牛上车前只知道这批过山车总共有n个位置,已经有k个人坐上去了,请帮助牛牛计算一下最少有多少个位置符合他的要求,最多有多少个位置符合他的要求。
注:第一个位置的前面和最后一个位置的后面我们认为是没有人。
输入描述:
一行两个整数n,k。 n≥k≥0输出描述:
输出两个整数表示最少和最多的符合他要求的位置示例1
输入:6 3
输出:1 3示例2
输入:6 2
输出:1 4解题思路:
这道题其实比较容易想到,但是会漏掉两个特殊条件,一个是 n == k,另一个是 k == 0。我就是没考虑到没有人上车的情况,这样小牛也不敢上车,因此当 k == 0 时,没有位置。可以使用 C# 中的 Math 类的静态方法 Min(),统一上述两种特殊情况。C# 代码:
using System; class Program{ static void Main(){ string input; string[] tokens; while((input = Console.ReadLine()) != null){ tokens = input.Split(); int n = int.Parse(tokens[0]); int k = int.Parse(tokens[1]); int rem = n-k; int max = Math.Min(2*k, rem); int min = Math.Min(max, 1); Console.WriteLine(min + " " + max); } } }