1. 程式人生 > >ACM題目百錢百雞-N錢N雞

ACM題目百錢百雞-N錢N雞

題目:
雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,N錢買N雞,問翁、母、雛各幾何?
一百個銅錢買了一百隻雞,其中公雞一隻5錢、母雞一隻3錢,小雞一錢3只,問一百隻雞中公雞、母雞、小雞各多少。
解題思路:
根據題意設x為公雞,y為母雞,z為小雞,列方程x+y+z=N;5x+3y+(1/3)z=100即15x+9y+z=3N
為了減少程式執行的時間,對x、y、z的範圍進行縮小,因為N錢最多買N/5只公雞,N/3只母雞,N只小雞即:0 <= x <= N/5,0 <= y <=n/4,0 <= z <=N

程式碼:

#include "iostream"
using
namespace std; int main() { int n,m=1,count = 0; int x,y,z; while(cin>>n) { if(n==0) break; for(x=0;x<=n/5;x++) for(y=0;y<=n/3;y++) for(z=0;z<=n;z++) if(15*x+9*y+z==(3*n)&&x+y+z==n) count++; cout
<<"Case "<<m<<":"; if(count>0) cout<<count<<endl<<endl; else cout<<"Not matched!"<<endl<<endl; m++; } return 0; }