>  기사  >  백엔드 개발  >  PHP Hundred Money Hundred Chicken 문제(3가지 문제 해결 아이디어 및 답변)

PHP Hundred Money Hundred Chicken 문제(3가지 문제 해결 아이디어 및 답변)

**熬夜选手
**熬夜选手원래의
2020-04-30 13:20:1012245검색

백코인과 백닭이 무엇인가요?

고대 중국 수학자 Zhang Qiujian이 "Suan Jing"이라는 책에서 제기한 수학 문제: 암탉 한 마리는 다섯 마리의 가치가 있고, 암탉 한 마리는 세 마리의 가치가 있고, 병아리 세 마리는 한 마리의 가치가 있습니다. 닭 백 마리를 백 달러에 사면 닭, 어미, 병아리의 가격은 얼마입니까?

PHP Hundred Money Hundred Chicken 문제(3가지 문제 해결 아이디어 및 답변)

번역은 다음과 같습니다.

수탉 한 마리는 5위안, 암탉 한 마리는 3위안, 병아리 3마리는 1위안입니다. 닭 100마리를 100위안으로 샀습니다.

다음은 PHP를 사용하여 세 가지 방법으로 이 문제를 해결합니다.

첫 번째

가정:

수탉 1마리, 암탉 1마리, 병아리 1마리가 있는 경우 총 가격은 다음과 같습니다. ..,잘못된.

수탉 1마리, 암탉 1마리, 병아리 2마리가 있는 경우 총 가격은 다음과 같습니다...., 올바르지 않습니다.

수탉 1마리, 암탉 1마리, 병아리 3마리가 있는 경우 총 가격은 다음과 같습니다..., 올바르지 않습니다.

.......................

수탉 1마리, 암탉 2마리, 병아리 1마리가 있다면 총 가격은 :...... ..,잘못된.

수탉 1마리, 암탉 2마리, 병아리 2마리가 있는 경우 총 가격은 다음과 같습니다..., 올바르지 않습니다.

수탉 1마리, 암탉 2마리, 병아리 3마리가 있는 경우 총 가격은 다음과 같습니다. ..., 올바르지 않습니다.

.......................

수탉 100마리, 암탉 100마리, 병아리 100마리가 있다면 총 가격은 .. ., 잘못된.

이런 종류의 프로그래밍 아이디어를 "완전"이라고 합니다. 이는 가능한 모든 답변을 나열한 다음 하나씩 확인하는 것을 의미합니다.

코드는 다음과 같습니다.

<?php
$count = 0;
for($gongji = 0;$gongji <= 100;$gongji++){
for ($muji=0; $muji <= 100; $muji++) { 
for ($xiaoji=0; $xiaoji <= 100 ; $xiaoji++) { 
if($gongji + $muji + $xiaoji ==100 && $gongji*5 + 
$muji*3 + $xiaoji / 3 == 100){
  echo "<br>公鸡:$gongji,母鸡: $muji,小鸡: $xiaoji";
}
$count++;
}
}
}
echo "<br>".$count;

결과:

수탉: 0, 암탉: 25, 병아리: 75 수탉: 4, 암탉: 18, 병아리: 78 수탉: 8, 암탉: 11 , 병아리 : 81 수탉: 12, 암탉: 4, 병아리: 841030301

두 번째

코드는 다음과 같습니다

$count = 0;
for($gongji = 0;$gongji <= 100 / 5;$gongji++){
for ($muji=0; $muji <= 100 / 3; $muji++) { 
$xiaoji = 100 - $gongji - $muji;
if($gongji*5 + $muji*3 +$xiaoji / 3 == 100){
echo "<br>公鸡:$gongji,母鸡: $muji,小鸡: $xiaoji";
}
$count++;
}
}
echo "<br>".$count;

결과:

수탉: 0, 암탉: 25, 작은 닭: 75 들: 4, 암탉: 18, 병아리: 78 수탉: 8, 암탉: 11, 병아리: 81 수탉: 12, 암탉: 4, 병아리: 84714

세 번째 유형

코드는 다음과 같습니다

$count = 0;
for($gongji = 0;$gongji <= 100 / 5;$gongji++){
for ($muji=0; $muji <= (100-$gongji*5) / 3; $muji++) { 
$xiaoji = 100 - $gongji - $muji;
if($gongji*5 + $muji*3 +$xiaoji / 3 == 100){
echo "<br>公鸡:$gongji,母鸡: $muji,小鸡: $xiaoji";
}
$count++;
}
}
echo "<br>".$count;

결과:

수탉: 0, 암탉: 25, 병아리: 75 수탉: 4, 암탉: 18, 병아리: 78 수탉: 8, 암탉: 11, 병아리: 81 수탉: 12, 암탉: 4, 병아리: 84364

요약:

삼중 for 루프를 직접 사용한다고 생각하기 쉽지만 삼중 루프의 복잡성이 너무 크기 때문에 루프를 줄이는 것을 생각해야 합니다. 총 닭 수에서 수탉과 암탉을 빼면 루프의 한 레이어가 줄어들어 실행 시간이 줄어들고 코드 효율성이 향상됩니다.

위 내용은 PHP Hundred Money Hundred Chicken 문제(3가지 문제 해결 아이디어 및 답변)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.