PTA6-1 鸡兔同笼问题 (20分)
生活随笔
收集整理的這篇文章主要介紹了
PTA6-1 鸡兔同笼问题 (20分)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
6-1 雞兔同籠問題 (20分)
孫子算經(jīng)》記載:“今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?”
函數(shù)原型
int ChickenRabbit(int *chicken, int *rabbit, int head, int foot);
說明:head 和 foot 是頭和腳的數(shù)量,chicken 和 rabbit 是指示雞和兔數(shù)量的指針。若問題有解,則將雞和兔的數(shù)量保存到 chicken 和 rabbit 所指示的變量中,函數(shù)值為1(真);否則不改變 chicken 和 rabbit 所指示的變量,函數(shù)值為0(假)。
這里有兩種方法:
這里我們用數(shù)學公式來表示雞兔的個數(shù),最后通過判斷公式中求解的值是否為整數(shù)來決定輸出結(jié)果,今天我在PTA 的上機練習中就遇到了這種情況的問題(而老師給我的解釋是要考慮的數(shù)學情況有很多),比如:
給定的頭的個數(shù)不能比腳多;
當用公式求得的值為負值時便不能正常輸出( 屬于bug)
我寫的代碼如下:
2.循環(huán)遍歷法
int ChickenRabbit(int *chicken, int *rabbit, int head, int foot) {int i;for(i=0;i<head;i++)//與上面的區(qū)別在于是將兔的個數(shù)從0到head逐個試{if(2*i==(foot-2*head)){*rabbit=i;*chicken=head-i;break;} }if(i<=head)//另外需要考慮好是由break結(jié)束查值還是用<=head來查值return 1;elsereturn 0;}總結(jié)
以上是生活随笔為你收集整理的PTA6-1 鸡兔同笼问题 (20分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux yum安装驱动,centos
- 下一篇: 【编程题】【Scratch二级】2021