问题:
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
解决方案:
直接上代码。
源代码:
#include<iostream>
#include<stdint.h>
using namespace std;
int main() {
int N,c=0,s=0;
int i, j, k;
cin >> N;
for (i = 0; i * 5 <= N; i++) {
for (j = 0; j * 3 <= N; j++) {
for ( k = 0; k <= N*3; k=k+3)
{
if ((i + j + k) == N && (i * 5 + j * 3 + k / 3) == N) {
c++;
s = s + i;
}
}
}
}
if (c == 0) {
s = -1;
cout << c << " " << s << endl;
}
else {
cout << c << " " << s << endl;
}
}