网易2017秋招编程题 买苹果
2017-10-18 01:38
288 查看
1 问题建模
求 min(x+y):6x+8y=n,1≤n≤100,x,y∈N2 解题步骤
2.1 求解
易知方程有解的必要条件是: n=2m,m∈N,m≥2,则方程可化为: 3x+4y=m求解,得: {x=4t−my=m−3t,t∈N
于是: x+y=t⇒min(x+y)=min(t)=⌈m4⌉=⌊m+34⌋=⌊n+68⌋
2.2 有解的充要条件
由于4t−m=x≥0⇒t≥m4m−3t=y≥0⇒t≤m3⎫⎭⎬⎪⎪⇒⌈m4⌉≤t≤⌊m3⌋,m∈N,m≥2
因此,方程有解的充分必要条件是:(1) n=2m,m∈N,m≥2 (2) ⌈m4⌉≤⌊m3⌋
分析条件(2):
(a) m≥9 时, 3(m+3)≤4m⇒m+34≤m3⇒⌈m4⌉=⌊m+34⌋≤⌊m3⌋
(b) 2≤m≤8 时, ⌈m4⌉ 与 ⌊m3⌋ 的列表如下:
m | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
⌈m4⌉ | 1 | 1 | 1 | 2 | 2 | 2 | 2 |
⌊m3⌋ | 0 | 1 | 1 | 1 | 2 | 2 | 2 |
≤ | x | ✓ | ✓ | x | ✓ | ✓ | ✓ |
n=2m,m∈N,m∈{3,4}∪[6,+∞)
即: n∈{2m,m∈N}∩({6,8}∪[12,+∞))
3 源码
#include <stdio.h> #include <stdlib.h> int main() { int n; int res = -1; scanf("%d", &n); if ((n & 1) == 0 && (n == 6 || n == 8 || n >= 12)) { res = (n + 6) / 8; } printf("%d", res); return 0; }
相关文章推荐
- 网易2017秋招编程题:买苹果 [python]
- 网易2017校园招聘编程题——分苹果
- 分苹果----网易2017内推笔试编程题合集(一)
- 网易2017秋招编程题之买苹果
- 网易2017春招笔试真题编程题集合
- 网易2017内推笔试1:分苹果 [python]
- 网易2017春招编程题:小易记单词 [python]
- 【newCoder】2017春招真题 [编程题] 分苹果
- 网易2017春招笔试真题编程题集合--魔力手环
- 网易2017春招实习生编程题
- Fibonacci数列----网易2017内推笔试编程题合集(二)
- 网易2017秋招编程题:暗黑的字符串 [python]
- 网易2017春招笔试真题编程题集合——2.优雅的点
- 网易有道2017内推编程题
- 网易2017内推 [编程题]疯狂队列
- 2017校招去哪网,阿里,网易,中兴,华为笔试编程题五则(Python描述)
- 女友校招笔试编程题:网易测试岗-买苹果和求最大奇约数
- 网易2017秋招编程题
- 网易2017春招笔试真题编程题集合——4.消除重复元素
- 网易有道2017内推编程题