百鸡百钱问题解答

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44084963

http://www.llwjy.com/blogd.php?id=f6c0ce9433483f0ee178e15ac5d2ff6a

个人的博客小站也搭建成功,网址:www.llwjy.com ,欢迎大家来吐槽~

一个很有趣的数学问题“百鸡百钱”,该问题出自我国古代数学家张丘建《算经》,其中是这样描述的“鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?” 关于这个问题其实就是一个很简单的方程 5x+3y+(100-x-y)/3=100,x,y为整数的问题。

这个问题在很多人的博客都已经实现了,但是我这其中还是略有不同的,不知您发现木有,源码如下:

 /**
 *@Description:    百鸡百钱问题
 */
package com.lulei.test;  

public class Chick {

	/**
	 * 问题描述:百钱买百鸡(公鸡5元,母鸡3元,小鸡1元3只)
	 * 鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a = 0;//公鸡数目
		int b = 0;//母鸡数目
		int c = 0;//小鸡数目
		double money = 0;
		for (a=0; a <= 20; a++) {
			for (b=0; b <=33; b ++) {
				c = 100 - a - b;
				money = 5 * a + 3 * b + c / 3.0;
				if  (money > 99.9999999 && money < 100.0000001) {
					System.out.print("公鸡数目:" + a);
					System.out.print("\t母鸡数目:" + b);
					System.out.println("\t小鸡数目:" + c);
					System.out.println("-----------------------------------------------------------");
				}
			}
		}
	}

}

执行结果如下图:

时间: 2024-10-26 01:53:42

百鸡百钱问题解答的相关文章

百鸡百钱while做法

//百鸡百钱 公鸡2文,母鸡1文,小鸡0.5文 int count = 0; int gong = 0; while (gong<=50) { int mu = 0; while(mu<=100) { int xiao = 0; while(xiao<=200) { if(gong+mu+xiao==100&&2*gong+mu+0.5*xiao==100) { count++; Console.WriteLine("第"+count+"种组

百鸡百钱

//百鸡百钱 ,公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只 //共有100文钱,如何在凑够100只鸡的情况下刚好花完100文钱 int count = 0; int bian = 0; for (int gong = 0; gong <= 50;gong++ ) { for (int mu = 0; mu <= 100;mu++ ) { for (int xiao = 0; xiao <= 200;xiao++ ) { bian++; if(gong+mu+xiao==100&

百鸡百钱解题报告

百鸡百钱问题来源:中国古代数学家张丘建在他的<算经>中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各几何? 解题思路: 设鸡翁.鸡母.鸡雏的个数分别为x,y,z,题意给定共100钱要买百鸡,若全买公鸡最多买20只,x的取值范围:0<=x<20:同理,y的取值范围:0<=y<33之间,可得到下面的不定方程: 5x+3y+z/3=100x+y+z=100所以此问题可归结为求这个不定方程的整数解.百度上貌似代码中x的

for循环语句之棋盘放粮食、百鸡百钱、纸张的折叠问题

1.棋盘放粮食 int lszl = 1; for (int i = 1; i < 30; i++) { int x = 1; for (int j = 1; j <= i; j++) { x = x * 2; } lszl = lszl + x; } double zl = lszl * 0.001; Console.WriteLine("放满整个棋盘所需要:" + zl + "kg的粮食"); 2.百鸡百钱 for (int i = 1; i <

1. while循环(当循环) 2. do{}while()循环 3. switch cose(多选一) 例子:当选循环下求百鸡百钱 用 switch cose人机剪刀石头布

1. while循环: 当选循环下求百鸡百钱:如下: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><me

百鸡白钱

package jt15006.u1_1.ch3; public class Baijibaiqian { public static void main(String[] args) { /* * 百鸡百钱 * 公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱, * 如果用100文钱买100只鸡, 那么公鸡.母鸡和小鸡各应该有多少只 */ int money = 100; int count = 100; // i为公鸡数量 for (int i = 0; i <= count; i++) {

百鸡百钱问题

描述    我国古代数学家张丘建在<算经>一书中提出的数学问题:        鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一.        百钱买百鸡,问鸡翁.鸡母.鸡雏各几何?    输入        输出    鸡翁数量    鸡母数量    鸡雏数量 public class Main {     public static void main(String[] args){                  for (int i = 1; i <= 20; i++) {     

趣味方程之百鸡百钱

大家想必都知道这个问题,问题在这里就不描述了.直接分析: 如果用数学的思想来解决这个问题,设公鸡x只,母鸡y只,小鸡z只. 5*x+3*y+z/3 = 100 x+y+z=100 但看这个方程有无数的解,其实里面隐藏着一个x,y,z都是正整数,因此解决这个方法用穷举. 确定程序的框架: 我们编写一个方法用于计算m钱买n鸡问题 package 百钱百鸡; public class Main { public static void main(String[] args) { int m,n; m

C语言百鸡百钱问题!

#include <stdio.h> int main (void){  int a,b,c;  for(a=0;a<=100;a++)   for(b=0;b<=100;b++){    c=100-a-b;    if(15*a+9*b+c==300)    printf("鸡公数是:%-8d;母鸡数是:%-8d;幼鸡数是:%-8d\n",a,b,c);   }}