
正文
java代码求解公鸡问题 java求公约数公倍数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用JAVA编程算出《张丘建算经》中的一道百鸡问题
写任何程序之前先分析问题。这道题根据题意可列出以下方程:
a + b + c = 100
5a + 3b + c/3 = 100
两方程联立消去c可得到:14a + 8b = 200
也就是说这道题求的是满足 14a + 8b = 200 这个方程的整数解,即 (200 - 14 * a) % 8 == 0
demo(仅供参考):
public static void main(String[] args) {
// a,b,c分别是公鸡、母鸡、小鸡的数量
int a, b, c;
String format = "公鸡%d只,母鸡%d只,小鸡%d只%n";
for (int i = 0, max = 200 / 14 + 1; i max; i++) {
if ((200 - 14 * i) % 8 == 0) {
a = i;
b = (200 - 14 * a) / 8;
c = 100 - a - b;
System.out.format(format, a, b, c);
}
}
}
输出结果:
公鸡0只,母鸡25只,小鸡75只
公鸡4只,母鸡18只,小鸡78只
公鸡8只,母鸡11只,小鸡81只
公鸡12只,母鸡4只,小鸡84只
相关问答
Q1: java题,五文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只小鸡,现在用100文钱买100只鸡,...
public static void main(String[] args) {
for (int i = 0; i =20 ; i++) {
for (int j = 0; j =33 ; j++) {
for (double k = 0; k =300 ; k++) {
if (i*5+j*3+k/3==100i+j+k==100){
System.out.println("公鸡"+i+"母鸡"+j+"小鸡"+(int)k);
};
}
Java
包括一个类的扩展集合,分别组成各种程序包(Package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。
以上内容参考:百度百科-Java
Q2: 用Java编程求解“百钱百鸡”,母鸡5元一只,公鸡3元一只,小鸡一元三只,现有100元钱,问共有多少种买法?
int m = 100;//100元
int x = 5;//母鸡
int y = 3;//公鸡
int z = 1/3;//小鸡
int n = 0;//买法
for (int i = m / x; i = 0; i--)
{
for (int j = 100 - i * x; j = 0; j--)
{
if (i * x + j * y = 100)
{
System.out.println("母鸡:"+i+"java代码求解公鸡问题;公鸡java代码求解公鸡问题:"+j+"java代码求解公鸡问题;小鸡:"+((100-x*i-y*j)*3)+"\t\t总和java代码求解公鸡问题:"+(i*x+j*y+(100-x*i-y*j)));
n++;
}
}
}
System.out.println(n);
共有364种算法
Q3: 一百块买鸡,公鸡五元,母鸡三元,鸡仔一元,怎么用Java运算出来
java不会,写个c的,方法是一样的。
一百块可以买公鸡20只,母鸡33只,鸡仔100只。也就是说这三种鸡无论怎么组合,公鸡不可能超过20,母鸡不可能超过33,鸡仔不可能超过100。所以一个三重for循环就可以遍历所有组合,找出符合要求的组合。而且,你题目不完整,给你一个100钱能买的鸡的所有组合。如果要百钱买百鸡的话,把if语句的条件换成i+j+k==100即可。
for(int i=0;i=20;++i)
for(int j=0;j=33;++j)
for(int k=0;k=100;++k)
if(5*i+3*j+k==100)
printf("公鸡%d只,母鸡%d只,鸡仔%d只",i,j,k);
关于java代码求解公鸡问题和java求公约数公倍数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








