首页 > 代码库 > 把石头分为若干堆
把石头分为若干堆
题目:n块石头分为若干堆放在一条直线,要求每堆至少有一块石头,相邻两堆数目不同。求所有的分堆方法中,堆中石头大于k的最大的次数。
思路:贪心算法
代码:
import java.util.Scanner; public class Main2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); System.out.println(helper(n, k)); } public static int helper(int n, int k) { if (k > n) return 0; int res = 0; int flag = 0; while (n > 0) { if (n-k-flag >= 0) { res++; n = n - k - flag; flag = 1 - flag; } else break; } return res; } }
把石头分为若干堆
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。