N元钱买N只鸡,公鸡每只5元,母鸡每只3元,小鸡1元3只,N元钱必须刚好买N只鸡,而且鸡必须整只买,不能劈开买。
有几种买法呢?这就是N鸡问题。
输入格式:
在一行中输入一个正整数N。(N<500)
输出格式:
在一行中输出两个整数c s,中间用一个空格隔开,表示N元钱买N只鸡共有 c 种买法,且所有买法的公鸡数量之和是 s。
如果无解,则 s 为 -1.
输入样例1:
100
输出样例1:
4 24
输入样例2:
1
输出样例2:
0 -1
知识点
不能劈开买 所以又加了一个条件__k%3==0__
是<= !!如果忘了加‘=’会部分正确答案错误
代码
#include<iostream>
using namespace std;
int main(){
int n;cin>>n;
int cnt=0,sum=0;
for(int i=0;i<=n/5;i++){
for(int j=0;j<=n/3;j++){
int k=n-i-j;
if(i*5+j*3+k/3==n&&k%3==0){
cnt++;
sum+=i;
}
}
}
if(cnt==0){
cout<<"0 -1";
}else{
cout<<cnt<<' '<<sum;
}
}