#include<iostream>
#include<algorithm>
using namespace std;
//i*5+3*j+k/3==100&&k%3==0(不然出现错误)!!!
//15i+9j+k=300;-->14i+8j=200-->7i+4j=100
//i+j+k==100;
//k=100-i-j;j=(100-7i)/4;!!!j=(100-7i)/4>=0;-->i<=14
//(100-7i)%4==0(不然会出现错误,和上面k%3==0的错误是一样的)
int main()
{
for(int i=0;i<=14;i++)
{
if((100-7*i)%4==0)
{
int j=(100-7*i)/4;
int k=100-i-j;
if(i*5+3*j+k/3==100&&k%3==0)
cout<<i<<" "<<j<<" "<<k<<endl;
}
}
return 0;
}
优化后:
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int main()
{
for(int i=0;i<=20;i++)
if((100-7*i)%4==0)
{
int j=(100-7*i)/4;
int k=100-i-j;
if(j>=0)
printf("%d %d %d\n",i,j,k);
}
return 0;
}