百马白担问题。有100匹马,驮100担货,大马驮3担,中马驮2担,2匹小马驮1担。输入一个正整数n,输出所有大马数量大于等于n的大、中、小马各多少匹的组合。
输入格式:
15
输出格式:
输出所有的情况,一行代表一种情况。如果没有这样的组合,则输出“没有找到符合条件的组合”。按照大马的数量小到大输出并按照如下格式输出
case 1:大马 %2d匹 中马%2d匹 小马%2d匹
case 2:大马 %2d匹 中马%2d匹 小马%2d匹
…
#include<stdio.h>
int main()
{
int i,h,m,n,o=1; //m是中马数,n是小马数,h是大马数
scanf("%d",&i);
h=i;
while(h<=33)
{
for(m=50;m>=0;m--)
{
for(n=0;n<=100;n+=2)
{
if(3*h+2*m+n/2==100)
{
if(m+n+h==100)
{
printf("case %d:大马%2d匹 中马%2d匹 小马%2d匹\n",o,h,m,n);
o++;
break;
}
}
}
}
h++;
}
if(o==1)
printf("没有找到符合条件的组合");
return 0;
}
运行结果