n个人的搬砖问题,一次搬完

[问题描述] 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;
}

img

有帮助请采纳一下!