前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python|分巧克力

Python|分巧克力

作者头像
算法与编程之美
发布2020-07-02 15:05:02
7230
发布2020-07-02 15:05:02
举报
文章被收录于专栏:算法与编程之美

问题描述

儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。

小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。

为了公平起见,小明需要从这N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:

1. 形状是正方形,边长是整数

2. 大小相同

例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。

当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?

解决方案

输入

第一行包含两个整数N和K。(1 <= N, K <= 100000)

以下N行每行包含两个整数Hi和Wi。(1 <= Hi, Wi <= 100000)

输入保证每位小朋友至少能获得一块1x1的巧克力。

输出

输出切出的正方形巧克力最大可能的边长。

问题分析:这种题目是一道综合应用题我们要熟练使用一些基本的操作,首先我们可以用空列表将所有巧克力的面积收集起来,然后再利用循环从1开始,并将满足的条件放入列表中。最后输出最大值即可。

代码如下:

代码语言:javascript
复制

x,y = map(int,input().split())
 list1 = []
 list2 = []
 while x >0:
     a,b = map(int,input().split())
     list1.append(a*b)
     x -= 1
 s = 0
 for i in list1:
     s = s + i
 for n in range(1,10000):
     if n*n*y<=s:
         list2.append(n)
 print(max(list2))

实习编辑 | 王楠岚

责 编 | 王 曦

where2go 团队

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档