Java糖果问题代码 分糖果问题进阶问题 java

java两种糖果分别有9个和16个,分给7个小朋友,几种分法?

假设两种糖果分别是 A 和 B,数量分别为 9 和 16。现在要将这些糖果分给 7 个小朋友,问有几种不同的分法?

网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了惠城免费建站欢迎大家使用!

这是一个组合问题,可以使用数学公式解决。计算方法如下:

首先,将 A 和 B 的数量相加得到 9+16=25。

然后,将 25 个糖果分给 7 个小朋友,每个小朋友至少分到一个糖果。这个问题可以转化为将 25 个糖果分给 7 个小朋友,允许有 0 个糖果的小朋友。这是一个经典的 "分配问题",可以使用组合数学中的 "第二类斯特林数" 解决。公式为:S(25,7)。

因此,将 25 个糖果分给 7 个小朋友的不同分法共有 S(25,7) 种,计算结果为:

S(25,7) = 2042975

因此,将两种分别有 9 个和 16 个糖果的糖果分给 7 个小朋友的不同分法有 2042975 种。

java买不到的数目 小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两

1、首先我来整理下这到题,抽取主要提干

a=4 和 b=7 最大不能组合出来的数是c= 17

a=3 和 b=5 最大不能组合出来的数是c= 7

当a b值任意 求c值

2、java 代码

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class T_1796140699890495867html {

public static void main(String[] args) throws Exception {

//输出段

BufferedReader brKey = new BufferedReader(new InputStreamReader(System.in));

System.out.println("用户输入:");

String strNum = brKey.readLine();

String[] oneAndTwoNums = strNum.split(" ");

brKey.close();

//处理段

int boxOne,boxTwo,impNum,bufNum;

boxOne = Integer.valueOf(oneAndTwoNums[0]);

boxTwo = Integer.valueOf(oneAndTwoNums[1]);

//如果第一个数大于第二个数,那么调换位置

if(boxTwo boxOne){

boxOne = boxOne + boxTwo;

boxTwo = boxOne - boxTwo;

boxOne = boxOne - boxTwo;

}

//预定义值

impNum = boxOne * boxTwo;

//临时计算数

bufNum = impNum;

while(bufNum = 0){

if(bufNum % boxOne == 0){

bufNum = (-- impNum);

}else if(bufNum % boxTwo == 0){

bufNum = -- impNum;

}else{

bufNum -= boxTwo;

}

}

//输出段

System.out.println("程序应该输出:");

System.out.println(impNum);

}

}

3、运行截图

Java简单算法问题

初步做了一个出来,但是效率并不是很高,前100个计算速度还可以,但是往后就很慢了。如果什么时候有空的话可以再看看,先给你代码吧,不知道能不能帮上你

public class AlisandaNumber {

private static final int MAX_INDEX = 1000; // 可以先把这个常量改为1-6,验证正确性

public static void main(String[] args) {

int a = 0;

int index = 0;

while(index  MAX_INDEX) {

a += 6; // 每次循环自增6,由题目规律可知A是6的倍数

boolean breakOut = false;

// 最大的约数为此数的平方根,因为如果是两个平方根相乘的话,剩下的就只有1了

int maxNum = (int) Math.ceil(Math.sqrt(a));

p:

for(int p = 1; p = maxNum; p ++) {

if(a % p != 0) {

continue; // 如果不是约数的话,没必要考虑,下同

}

// 最大约数为平方根的相反数,原理同上

maxNum = (int) Math.ceil(Math.sqrt(a / p));

for(int q = -1; q = -maxNum; q --) { // q和r必为负数

if(a % q != 0) {

continue;

}

int r = a / (p * q);

int nonZero = p * q + p * r + q * r;

if (nonZero == 0) {

continue;

}

if((a == p * q * r)  (a == (p * q * r) / (nonZero))) {

index ++;

breakOut = true;

break p; // 跳出外层循环

}

}

}

if(breakOut) {

System.out.println(String.format("第%d个压力山大数是%d", index, a));

}

}

}

}

HDOJ 1205吃糖果 java

/**

* @(#)Eat_Candy.java

*

*

* @author 

* @version 1.00 2013/10/17

*/

import java.util.*;

import java.math.*;

public class Eat_Candy {

/**

 * Creates a new instance of codeEat_Candy/code.

 */

// public Eat_Candy() {

// }

/**

 * @param args

 *            the command line arguments

 */

public static void main(String[] args) {

Scanner reader = new Scanner(System.in);

long number = reader.nextLong();

long size = reader.nextLong();

long sum = 0, max = 0, b = 0;

b = reader.nextLong();

for (long j = 0; j  number; j++) {

if (size  0 || size  1000000)

break;

for (long i = 0; i  size; i++) {

sum += b;

if (b  max) {

max = b;

}

}

if (sum - max + 1l = max) {

System.out.println("YES");

} else

System.out.println("NO");

}

// TODO code application logic here

}

}


名称栏目:Java糖果问题代码 分糖果问题进阶问题 java
网址分享:http://myzitong.com/article/ddjsidp.html