p1060 [noip2006 普及组] 开心的金明
时间: 2023-04-24 11:05:05 浏览: 98
题目描述
金明今天很开心,家里购置的新房子装修完毕,金明把自己的房间布置得舒适又漂亮。他还邀请了他的好朋友们到他家里玩。他们玩“藏宝箱”游戏:把一些物品放到一个箱子里面,然后每个人根据自己的喜好猜这个箱子里面的物品有多少。金明的好朋友们都很喜欢这个游戏,他们都猜了很多次。现在,游戏结束了,金明想知道最接近箱子里实际物品数量的人是谁,他把这个人的名字和猜的数量告诉你,你能否编程找出最接近的那个人?
输入格式
输入文件p1060.in共有n+1行:
第1行为一个整数,表示箱子中实际的物品数量m(10<=m<=10000);
第2到n+1行,每行描述一个人的名字和他猜的数量,以一个空格分隔,名字长度不超过30个字符,数量不超过m。
输出格式
输出文件p1060.out共有1行,为最接近m的人的名字。
如果有多个人的猜测结果都是最接近m的,那么输出他们中的“小名”。
输入样例
50
Alice 20
Bob 15
Cathy 23
David 18
输出样例
David
提示
样例解释:实际物品数量为50,David猜测数量为18,是最接近50的。
相关问题
p1059 [noip2006 普及组] 明明的随机数
题目描述:
明明想在学校里组织一些活动,他想让参加活动的同学排成一列,然后从这个序列中选出一些数,使得这些数之间没有重复的数。明明想知道,他最多能选出多少个数。
输入格式:
输入的第一行包含一个整数 n,表示序列的长度。
第二行包含 n 个整数,表示整个序列。
输出格式:
输出一个整数,表示最多能选出的数的个数。
输入样例:
5
2 2 1 3 1
输出样例:
3
解题思路:
本题需要用到set容器,set容器是一个内部自动有序且不重复的容器,可以用来存储不重复的元素。
首先将输入的序列存储到set容器中,因为set容器内部自动有序,所以可以直接遍历set容器,找到相邻两个数不相等的个数,即为最多能选出的数的个数。
C++代码:
明明的随机数(NOIP2006 普及组)
你好!对于问题"明明的随机数(NOIP2006 普及组)",这是一道经典的算法题目。题目描述如下:
给定一个正整数n,你需要找到一个最小的正整数m,满足m的各位数字之和等于n。你需要输出这个最小的m。
解决这个问题的思路是,从1开始递增m,直到找到满足条件的m。可以使用一个循环来遍历所有可能的m,并通过计算其各位数字之和来检查是否满足条件。
以下是一个示例的Python代码实现:
```python
def digit_sum(num):
# 计算一个数的各位数字之和
res = 0
while num > 0:
res += num % 10
num //= 10
return res
def min_number(n):
m = 1
while True:
if digit_sum(m) == n:
return m
m += 1
# 测试样例
n = int(input("请输入n的值:"))
result = min_number(n)
print(result)
```
在这个代码中,我们定义了两个函数。`digit_sum`函数用于计算一个数的各位数字之和。`min_number`函数用于寻找满足条件的最小整数m。
你可以根据题目要求输入一个正整数n,然后调用`min_number`函数来获取结果。
希望这个回答能对你有所帮助!如果还有其他问题,请随时提问。