经典搬砖问题:现有n块砖,要由n个人一次搬完,假定男人一次可以搬4块,女人一次可以搬3块,两个小孩可以一起搬1块,计算这n人中男人、女人和小孩的人数。
要求如下:用户输入人数和砖数n,程序输出可能的解决方案。如果没有满足的情况,显示提示信息“无解!”。输出格式见样例,有多组方案时,按男人数量从多到少的顺序输出。男人数量相同时,女人数量从少到多。
我写的代码如下:
#include<iostream>
using namespace std;
int main()
{
int n,m,f,c,i=1;
cout << "请输入人数和砖数n=";
cin >> n;
for(m=n;m>=0;m--)
{
for(f=n;f>=0;f--)
{
c = (n-4*m-3*f)*2;
if(c%2==0 && m+f+c==n)
{
cout << "男" << m << "女" << f << "孩" << c << endl;
i++;
}
}
}
if(!i)
{
cout << "无解!" << endl;
}
return 0;
}
可是我输入n=1时并没有输出”无解“,想必是在循环中没有出来,请教各位应该如何解决呢?