郑州轻工业大学oj题解(c语言)1075: 聚餐人数统计 穷举法
2019-12-16 本文已影响0人
缘点点
本题依然是穷举法的例题,和上题几乎一样。可以直接参考1074:百钱买百鸡的代码自己完成。
1075: 聚餐人数统计
- 题目描述
马克思手稿中有这样一道趣味数学题:男人、女人和小孩总计n个人,在一家饭店里吃饭,共花了cost先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,请用穷举法编程计算男人、女人和小孩各有几个。 - 输入
输入两个正整数,表示人数n和花费cost。 - 输出
若问题有解,则输出所有解,每行输出三个数据,代表男人、女人和小孩的人数,用空格分隔;若问题无解,则输出“No answer"。
1.如果全是男人,那么最多花cost*3,定义变量i。
2.如果全是女人,那么最多花cost*2,定义变量j。
3.如果全是小孩,那么最多花cost*1,定义变量s。
- 参考代码:
#include<stdio.h>
int main()
{
int n,cost;
int find=0;
scanf("%d%d",&n,&cost);
for(int i=0;i<=n;i++){
for(int j=0;j<=n-i;j++){
int s=n-i-j;
if(3*i+2*j+s==cost){
find=1;
printf("%d %d %d\n",i,j,s);
}
}
}
if(find==0){
printf("No answer");
}
return 0;
}
代码解析:与1074几乎一样的题目内容,同样可以利用穷举法来完成。与1074唯一的不同点,在于这里花的钱是自己输入的。
注意各个循环的判断之间的括号问题。避免某一循环影响到其他循环的判断