C/C++语言入门——鸡兔同笼问题
C/C++入門——雞兔同籠問題
Problem Description:雞兔同籠是中國古代的數學名題之一。大約在1500年前,《孫子算經》中就記載了這個有趣的問題。書中是這樣敘述的:今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?
大致意思是說:雞兔在一個籠子里,從上面來數,有三十五個頭,從下面來看,有九十四只腳,請問雞和兔各有多少只?
現在由你寫一個程序,輸入n與m,表示有n個頭、m只腳,算出籠子中雞和兔分別有多少只?
input:輸入兩個數 n m,表示籠子里有多少個頭、多少只腳?(數據在有解范圍內)
output:輸出兩個數 a b,表示雞的數量和兔子的數量
Sample Input:
35 94
Sample Output:
23 12
《孫子算經》用算術方法來解:腳數的1/2減頭數,即94/2-35=12為兔數;頭數減兔數即35-12=23為雞數。這種解法雖然直接而自然,也很合乎邏輯,但是卻不容易理解。知道孫武是如何解答這個“雞兔同籠”問題的嗎?
先來看一下古人如何解:原來孫子提出了大膽的設想。他假設每只雞和每只兔只有1/2的腳,則每只雞就變成了“獨腳雞”,而每只兔就變成了“雙腳兔”。這樣,“獨腳雞”和“雙腳兔”的腳就由94只變成了47只;而每只“雞”的頭數與腳數之比變為1:1,每只“兔”的頭數與腳數之比變為1:2。由此可知,有一只“雙腳兔”,腳的數量就會比頭的數量多1。所以,“獨腳雞”和“雙腳兔”的腳的數量與他們的頭的數量之差,就是兔子的只數。
現在比較常用的方法:列方程
列方程,怎么列?
我們可以先定義四個變量,a,b,m,n 分別表示雞的數量,兔子的數量,籠子里頭的數目和腳的數目。輸入n和m,列出方程:a=(4n-m)/2 b=(m-2n)/2 兩個方程,雖然看似是兩個方程四個未知S量,但是在列方程之前,n和m已經輸入,已有數值,所以此時未知量只有a和b,可解。解方程計算后,輸出a和b的值即可。
注意:輸出時中間有空格。
小提示:看到這里大家自己可以先寫一下,然后再對照下面的代碼。
C語言:
#include<stdio.h>int main() {int a,b,m,n;scanf("%d %d",&n,&m);a=(4*n-m)/2;b=(m-2*n)/2;printf("%d %d\n",a,b);return 0; }C++語言:
#include<iostream> using namespace std;int main() {int a,b,m,n;cin>>n>>m;a=(4*n-m)/2;b=(m-2*n)/2;cout<<a<<" "<<b<<endl;return 0; }樣例測試:
關于雞兔同籠問題先說到這里,希望看完這篇文章能夠對你們有所幫助!原創不易,喜歡的話還請多多點贊與關注!
作者:code_流蘇
如有錯誤,還請指正!
總結
以上是生活随笔為你收集整理的C/C++语言入门——鸡兔同笼问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python教学视频(一)Python基
- 下一篇: 用计算机算算术平方根顺序是ON然后是什么