首页 > 试题广场 >

买橘子

[编程题]买橘子
  • 热度指数:2518 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

小明去附近的水果店买橙子,水果商贩只提供整袋购买,有每袋6个和每袋8个的包装(包装不可拆分)。可是小明只想购买恰好n个橙子,并且尽量少的袋数方便携带。如果不能购买恰好n个橙子,小明将不会购买。


输入描述:
输入一个整数n,表示小明想要购买n(1≤n≤100)个橙子


输出描述:
输出一个整数表示最少需要购买的袋数,如果不能买恰好n个橙子则输出-1
示例1

输入

20

输出

3
n%8 取余是奇数,直接输出 -1
2+2*8 = 3*6
4+8 = 2*6
6 = 1*6
if __name__=='__main__':
    n = int(input().strip())
    ans = n//8
    k = n%8
    if k&1==1:
        print(-1)
    elif k==2:
        if ans >=2:
            ans += 1
            print(ans)
        else:
            print(-1)
    else:
        print(ans+1)


发表于 2019-09-10 14:35:47 回复(0)
import sys
n=int(sys.stdin.readline())
a=int(n/8)+1
res=[]
for i in range(a):
    if (n-8*i)%6==0:
        res.append(int(i+(n-8*i)/6))
if len(res)==0:
    print(-1)
else:
    res=sorted(res)
    print(res[0])
发表于 2019-03-19 20:22:54 回复(0)
n = int(input())
max_eig = n//8 answer = False for i in range(max_eig):
    m = n-(max_eig-i)*8   if m%6 == 0:
        max_six = m/6   max_eig = max_eig-i
        answer = True  break  if answer:  print(int(max_six+max_eig))  else:  print(-1)

发表于 2019-03-14 18:59:01 回复(0)

问题信息

上传者:小小
难度:
4条回答 3771浏览

热门推荐

通过挑战的用户

查看代码