华为机试HJ72:百钱买百鸡问题

简介: 华为机试HJ72:百钱买百鸡问题

题目描述:

公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

详细描述:

接口说明

原型:

int GetResult(vector &list)

输入参数:

       无

输出参数(指针指向的内存区域保证有效):

   list  鸡翁、鸡母、鸡雏组合的列表

返回值:

    -1 失败    

    0 成功

输入描述:

输入任何一个整数,即可运行程序。

输出描述:

返回vector<list<int>>中的结果。

示例:

输入:

1


输出:


0 25 75

4 18 78

8 11 81

12 4 84

解题思路:

本题是个数学问题,一百钱买一百只鸡。假设鸡翁x只,鸡母y只,鸡雏(100-x-y)只,设5x+3y+(100-x-y)/3=100,可得到y=25-7x/4,鸡数为整数,所以x为4的倍数,从0开始最多到20,但是不可能到那么高的;令鸡翁为4n,鸡母就为25-7n,鸡雏就为75+3n,然后让n从0开始递增,最多到3,因为4的话鸡母数为负数。基于此逻辑,定义GetResult函数,用list存放鸡数量,用vector存放可能的结果;再按要求输出即可。

测试代码:

#include <iostream>
#include <vector>
#include <list>
using namespace std;
int GetResult(vector<list<int>> &result)
{
    for(int i=0;i<=3;++i)
    {
        list<int> temp;
        temp.push_back(4*i);       // 鸡翁
        temp.push_back(25-7*i);    // 鸡母
        temp.push_back(75+3*i);    // 鸡雏
        result.push_back(temp);
    }
    if(result.empty())
    {
        return -1;
    }
    else{
        return 0;
    }
}
int main()
{
    int num;
    while(cin>>num)
    {
        vector<list<int>> result;
        if(GetResult(result)==0)
        {
            for(auto it=0;it<result.size();++it)
            {
                while(!result[it].empty())
                {
                    cout<<*(result[it].begin())<<" ";
                    result[it].pop_front();
                }
                cout<<endl;
            }
        }
        result.clear();
    }
    return 0;
}


相关文章
|
搜索推荐 云计算
在线教育平台
在线教育平台
1136 3
|
2月前
|
人工智能 语音技术 Docker
揭秘8.3k star 开源神器 VoiceCraft 用AI革新有声内容创作,只需几秒录音
VoiceCraft 是一款开源语音编辑与文本转语音(TTS)工具,仅需几秒录音即可实现语音克隆、插入、删除、替换等操作,支持零样本编辑和高自然度语音生成。适用于播客、短视频、有声书等内容创作场景,具备本地部署能力,已在 GitHub 获得 8.3k 星标。
195 0
|
C++ 容器
C++分配内存和函数重载
C++分配内存和函数重载
174 0
|
9月前
|
人工智能 数据安全/隐私保护
深度揭秘CoT!普林斯顿耶鲁发布最新报告:大模型既有记忆推理、也有概率推理
普林斯顿大学和耶鲁大学研究人员发布报告,探讨链式思维(CoT)提示对大型语言模型(LLM)推理能力的影响。研究通过移位密码任务,揭示了三个关键因素:任务输出概率、预训练阶段的隐性学习及中间操作数量(噪声推理)。实验使用GPT-4、Claude 3和Llama 3.1模型,发现CoT提示可显著提升模型准确性,但也存在局限性。论文地址:https://arxiv.org/abs/2407.01687。
350 29
|
前端开发 UED
使用HTML和CSS创建响应式表格
在网页设计中,表格是一种组织和展示数据的有效方式。本文档将指导你如何使用HTML和CSS来创建一个既美观又响应式的表格,以便在不同设备和屏幕尺寸上都能良好显示。我们将涵盖基础的HTML表格结构,样式美化以及如何实现响应式布局,使得表格内容在小屏设备上也能清晰阅读
545 0
|
前端开发 算法 搜索推荐
Web前端开发之面试题全解析 一(1),2024年最新前端组件化面试
Web前端开发之面试题全解析 一(1),2024年最新前端组件化面试
|
监控
|
弹性计算 应用服务中间件 PHP
云服务器ecs个人版快速入门概述
快速入门流程 一般购买和使用云服务器 ECS实例遵循以下步骤:配置选型创建实例远程连接实例如果是 Linux 实例,格式化和挂载数据盘 ;如果是 Windows 实例,格式化数据盘 文档目的 本文档介绍了如何快速创建实例、远程连接实例、格式化数据盘等。
1519 0