美文网首页C语言新手家园(1万钻以下)代码改变世界
郑州轻工业大学oj题解(c语言)1075: 聚餐人数统计 穷举法

郑州轻工业大学oj题解(c语言)1075: 聚餐人数统计 穷举法

作者: 缘点点 | 来源:发表于2019-12-16 16:06 被阅读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唯一的不同点,在于这里花的钱是自己输入的。
注意各个循环的判断之间的括号问题。避免某一循环影响到其他循环的判断

相关文章

网友评论

    本文标题:郑州轻工业大学oj题解(c语言)1075: 聚餐人数统计 穷举法

    本文链接:https://www.haomeiwen.com/subject/txddnctx.html