1. 程式人生 > >C/C++算法競賽入門經典Page9 例題1-4 雞兔同籠

C/C++算法競賽入門經典Page9 例題1-4 雞兔同籠

blog 兩個 pan scan spa printf col 判斷 ()

題目:雞和兔總數:n,總腿數:m.輸入n,m,輸出雞和兔分別的數量;無解則輸出"No answer"

樣例輸出1:

14 32

樣例輸出1:

12 2

樣例輸入2:

10 16

樣例輸出2:

No answer

首先,聲明兩個變量n,m對應總數和總腿數;再聲明兩個變量為雞和兔各自的數量a,b

1 int n,m,a,b;

輸入n,m:

scanf("%d%d",&n,&m);

通過聯立方程組:

a+b=n

2a+4b=m

得:

a=(4n-m)/2;

b=n-a;

判斷是否無解:

1.總腿數m不能為奇數

2.a>=0

3.b>=0

則:

if(m%2==1
||a<0||b<0) printf("No answer");

如果有解,則輸出a,b:

else
    printf("%d %d",a,b);

完整代碼:

//P9 例1-4雞兔同籠
#include <cstdio>

int n,m;//n:總數量 m:總腿數 

int main()
{
    int a,b;//a:雞的數量 b:兔的數量
    
    scanf("%d%d",&n,&m);//輸入總數量n和總腿數m 
    
    a=(4*n-m)/2;//聯立方程組2a+4b=m和a+b=n 
    b=n-a;
    
    
if(m%2==1||a<0||b<0)//總腿數不能是奇數且雞和兔的數量都不能是負數 printf("No Answer"); else printf("%d %d",a,b); return 0; }

C/C++算法競賽入門經典Page9 例題1-4 雞兔同籠