[问题描述] n块砖n个人搬(n是整数),男搬4,女搬3,两个小孩抬砖,男、女、小孩各若干,刚好一次搬完砖?
[输入形式] n
[输出形式]女小孩的人数如果有多种搬法,请按行输出每种搬法(每种搬法按男,女小孩的数值从小到大排序,数字之间用空格间隔).
[样例输入] 40
[样例输出]
0832
5134
#include<stdio.h>
#include<math.h>
int main() {
int n,x,y,z;
scanf("%d",&n);
for(x = 0; x <= n/4; x ++) {
for(y = 0; y <= n/3; y ++) {
z = n-x-y;
if(z%2==0) {
if(4*x + y*3 + z/2 == n)
printf("%d %d %d\n",x,y,z);
}
}
}
return 0;
}
觉得有用的话采纳一下哈
鸡兔同笼问题延展版
暴力解法直接两层for
int n = 40;
for(int i=0;i<=n/4+1;i++)
{
for(int j=0;j<=n/3+1;j++)
{
if(i*4+j*3+(n-i-j)*0.5==n)
{
print(i+" "+j+" "+(n - i - j));
}
}
}
#include <iostream>
int main()
{
using namespace std;
int men, women, children;
int n;
int count = 0;
cin >> n;
for (men = 0; men <= n / 4; men++)
{
for (women = 0; women <= n / 3; women++)
{
children = 2 * (n - 4 * men - 3 * women);
if (children>0 && children == n - men - women)
{
cout << men<<women<<children<< endl;
++count;
}
}
}
if (count==0){
cout << "no result!" << endl;
}
system("pause");
return 0;
}
有帮助请采纳一下!