算法2-百钱买百鸡

1.问题描述

我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?

百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,
用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。

2.算法思想

把所有情况都列举出来,留下符合条件的。
算法2-百钱买百鸡_第1张图片

3.算法实现

//百钱买百鸡问题
#include
int main(){
	int cock,hen,chicken;
	for(cock=0;cock<=20;cock++){
		for(hen=0;hen<=33;hen++){
			for(chicken=0;chicken<=100;chicken++){
				if((cock+hen+chicken==100)&&(5*cock+3*hen+chicken/3.0)==100){
					printf("cock=%2d,hen=%2d,chicken=%2d\n",cock,hen,chicken);
				}
			}
		}
	}
	return 0;
} 

4.算法优化

//百钱买百鸡问题
#include
int main(){
	int cock,hen,chicken;
	for(cock=0;cock<=20;cock++){
		for(hen=0;hen<=33;hen++){
				chicken=100-cock-hen;
				if(5*cock+3*hen+chicken/3.0==100){
					printf("cock=%2d,hen=%2d,chicken=%2d\n",cock,hen,chicken);
				}
			}
		}
	return 0;
}

5.结果展示

算法2-百钱买百鸡_第2张图片

你可能感兴趣的:(算法,算法,学习,笔记)