题目内容:
一只公鸡值5钱,
一只母鸡值3钱,
三只小鸡值1钱,
现在用百钱买百鸡,
请问公鸡、母鸡、小鸡各多少只?
列举输出所有可能,要求公鸡数目小到大排列,公鸡相同则按照母鸡递增顺序,公鸡母鸡都相同,则按照小鸡递增顺序
输出结果:
a,b,c
d,e,f
.....
(a,d...对应公鸡数量,b,e...对应母鸡数量,c,f...对应小鸡数量)
#include<stdio.h>
#include<stdlib.h>
int main()
{
int g=-1, m=-1, x=-1;
int c=-1;
/*要求公鸡数目小到大排列,公鸡相同则按照母鸡递增顺序,公鸡母鸡都相同,则按照小鸡递增顺序*/
/*按照题目意图应先满足范围最小的条件,且需要买100只鸡*/
for (g = 0; g <= 20; g = g + 1)
{
for(m=0;m<=33;m=m+1)
{
do
{
x += 1;
} while ((5 * g + 3 * m + x != 100 || g + m + x != 100) && x <= 100);
printf("%d,%d,%d\n", g, m, x);
}
}
system("pause");
return 0;
}
#include <bits/stdc++.h>
using namespace std;
struct s{
int g,m,x;
}s1[50];
bool cmp(s p1,s p2){
if(p1.g!=p2.g){
return p1.g<p2.g;
}
else{
if(p1.m!=p2.m)
return p1.m>p2.m;
else
return p1.x>p2.x;
}
}
int main()
{
int i,j,k,t=0;
for(i=0;i<=100;i++)
for(j=0;j<=100;j++)
for(k=0;k<=100;k++)
{
if(5*i+3*j+k/3==100&&k%3==0&&i+j+k==100)
{
s1[t].g=i;
s1[t].m=j;
s1[t].x=k;
t++;
}
}
sort(s1,s1+t-1,cmp);
for(i=0;i<t;i++){
cout<<s1[i].g<<" "<<s1[i].m<<" "<<s1[i].x<<endl;
}
}
其实只要三个for循环就行
#include <stdio.h>
main()
{
int i, j, k;
for(i=0;i<=100;i++)
for(j=0;j<=100;j++)
for(k=0;k<=100;k++)
{
if(5*i+3*j+k/3==100&&k%3==0&&i+j+k==100)
{
printf("公鸡=%4d只,母鸡=%2d只,小鸡=%2d只\n",i,j,k);
}
}}
代码如下,如有帮助,请采纳一下,谢谢。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int g=-1, m=-1, x=-1;
int c=-1;
/*要求公鸡数目小到大排列,公鸡相同则按照母鸡递增顺序,公鸡母鸡都相同,则按照小鸡递增顺序*/
/*按照题目意图应先满足范围最小的条件,且需要买100只鸡*/
for (g = 0; g <= 20; g = g + 1)
{
for(m=0;m<=33;m=m+1)
{
x = (100 - 5*g - 3*m)*3;
if(x>= 0)
printf("%d,%d,%d\n", g, m, x);
}
}
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=-1,b=-1,c=-1; //公鸡、母鸡、小鸡
int g=-1,m=-1;
/*要求公鸡数目小到大排列,公鸡相同则按照母鸡递增顺序,公鸡母鸡都相同,则按照小鸡递增顺序*/
/*按照题目意图应先满足范围最小的条件,且需要买100只鸡*/
for (a = 0; a <= 20; a = a + 1)
{
g = 100 - (a * 5); /*买完公鸡剩多少钱,这里a代表公鸡数量*/
m = (g - g % 3) / 3; /*最多可以买多少母鸡,这里m代表母鸡数量*/
for(b = 0;b <= m;b = b + 1)
{
c = (g - b * 3) / 1 * 3; /*最多可以买多少只小鸡*/
if(a+b+c == 100)
{
printf("%d,%d,%d\n", a, b, c);
}
}
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m