首页 > 编程语言 >c++习题20-百钱百鸡

c++习题20-百钱百鸡

时间:2024-08-10 14:53:47浏览次数:16  
标签:约翰 母鸡 公鸡 int 百钱 小鸡 20 习题 数量

目录

一,题目

二,思路

三,代码


 

一,题目

农夫约翰今天来到了畜牧市场,想给自己的农场里买点鸡回去。已知公鸡一只5块钱,母鸡3块钱,小鸡崽子一块钱三只。农夫手里有N元,他想买N只鸡,但是他跟ljc一样数学不好,想让你帮他算一算有几种买法,以方便他挑选。

输入描述

一个整数N,约翰手里的钱。
N<=50000。

输出描述

一个整数N,有多少种买法。

用例输入 1 

1000
用例输出 1 

36

二,思路

  1.  约翰的N元可以全部用来买公鸡,或母鸡,或小鸡,只要满足能够买到N只鸡就行。
  2. 公鸡5元一只,假设约翰买了g只公鸡,花了5*g元,但是约翰只有N元,因此5*g不能大于N:0 =< g*5 <= N  。同时,约翰也可以只买0只公鸡,将钱用来买母鸡或小鸡。因此可以搞一个for循环在最外层,遍历公鸡的数量。
     
  3. 母鸡3元一只,假设约翰买了m只母鸡,并且约翰还买了公鸡,那么买公鸡和母鸡的钱依旧不能超过N元:0 =< g*5+m*3 <= N,因为母鸡的数量和公鸡的数量一样,都是未知,有N+1中可能,所以同样需要用for循环框住,去遍历母鸡的数量。
  4. 公鸡加母鸡加小鸡的数量不能超过N只,小鸡的数量可知:N-g-m。在两层for循环里面的代码主要用来找到满足题目要求的公鸡,母鸡和小鸡数量,三者之间的关系要同时满足这两个条件:①通过前面的for循环,能够找到公鸡的数量g和母鸡的数量m,结合小鸡的数量N-g-m和题目要求的花费钱数不能超过N元,可以列出三者的关系式:5*g+3*m+(N-g-m)/3==N;②因为小鸡是3只一元,假设约翰只买了一只小鸡,花了0.3元,那么1元里面还剩下 0.7元,这0.7元买不了公鸡,也买不了母鸡,倒不如全部拿来买小鸡,所以小鸡的数量要能够整除3,表示小鸡是3只一买。
  5. 最后就是用变量s来存储满足条件的买法,输出即可。

三,代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int N,s=0;
	cin>>N;
	for(int g=0;g*5<=N;g++){
		for(int m=0;g*5+m*3<=N;m++){
			if(5*g+3*m+(N-g-m)/3==N & (N-g-m)% 3==0) s++;
		}
	}
	cout<<s;
	return 0;
}

有问题请在评论区留言或者是私信我,回复时间不超过一天。

标签:约翰,母鸡,公鸡,int,百钱,小鸡,20,习题,数量
From: https://blog.csdn.net/weixin_53046747/article/details/141090214

相关文章

  • P9750 [CSP-J 2023] 一元二次方程题目总结
    根据题面,我们将分为多种情况讨论:若a为负数,那么将a,b,c全部取反首先求出data=b^2-4*a*c;1,data<=0cout<<”NO”;否则带入求跟公式:-b/2a+(-)sqrt(data)注意::gcd(a,b)有可能为负数,此处应用abs(x)取绝对值若开根号data为有理数{-b为2*a的倍数则直接输出b否则输出b/gcd(b,2*a......
  • 2024 款:最新前端技术趋势
    Hello,大家好,我是Sunday。上一次的时候聊了那么些已经落后的前端开发技术。但是光知道什么技术落后了是不够的,咱们还得知道前端最新的技术趋势是什么。所以,今天这篇文章,咱们就来聊一聊,最新前端技术趋势。01:反TypeScript大家先不要着急骂我,大家先想一想:“JS的免于强类型......
  • Github 2024-08-10开源项目日报 Top10
    根据GithubTrendings的统计,今日(2024-08-10统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Python项目4JavaScript项目2TypeScript项目2C#项目1Dockerfile项目1RichTextFormat项目1Swift项目1Jupyt......
  • 2024暑假第六周总结
    Java字符串Java中的String类是处理字符数据的基础类创建字符串字面量创建:Stringstr1="Hello,World!";这是最常用的方式,str1会指向常量池中的字符串。通过new关键字创建:Stringstr2=newString("Hello,World!");这会创建一个新的String对象,即使内容相同,也与常量......
  • 2024牛客多校1
    H签到题,对于每场比赛排名在lzr010506前面且同时在两场比赛出现的的队伍,让他们全部去另一场,看看哪种情况lzr010506的排名更高即可。#include<bits/stdc++.h>#defineendl'\n'usingnamespacestd;constintmaxn=1e5+3;structteam{stringname;in......
  • 2024/08/10 每日一题
    LeetCode2940找到Alice和Bob可以相遇的建筑方法1:线段树classSolution{staticint[]tree;//存储区间的最大值staticvoidbuild(into,intleft,intright,int[]datas){if(left==right){tree[o]=datas[left-1];......
  • ABC201E Xor Distances 题解
    ABC201EXorDistances题解题目大意给定一个带权树,求树上每两点的简单路径上的边权的异或和的和。形式化的,定义\(dis(i,j)\)为\(i\)到\(j\)的简单路径上的边权的异或和,求\(\large\sum\limits_{i=1}^n\sum\limits_{j=i+1}^n\text{dis}(i,j)\)。Solve令\(\largef(u)=......
  • 塔子哥的美食节-阿里淘天2024笔试(codefun2000)
    题目链接塔子哥的美食节-阿里淘天2024笔试(codefun2000)题目内容塔子哥是一位美食评论家,他最近参加了一个美食节,品尝了n种不同的美食,每种美食都有一个特定的人气值。现在,塔子哥想写一篇关于这次美食节的文章,他打算挑选出k种美食,使得文章中能够突出一种特别受欢迎的......
  • Ubuntu20.04 安装 NVIDIA 显卡驱动
    1.禁用Nouveau驱动“nouveau”是NVIDIA显卡的开源驱动程序。查看驱动状态,若什么都没显示则是禁用了。lsmod|grepnouveau下面有显示信息,则说明在用着nouveau。开始设置禁用:#修改前先备份(防止出问题)sudocp/etc/modprobe.d/blacklist.conf/etc/modprobe.d/bl......
  • P2168 [NOI2015] 荷马史诗
    题意给定一个字符串\(s\)和整数\(k\)。求:1.k叉哈夫曼树的带权路径之和;2.求合法的哈夫曼树中,最小的高度是多少。思路按照普通二叉哈夫曼树对其进行编码,将其转化为\(k\)叉哈夫曼树。编码有可能出现合并到根节点的时候不足\(k\)个结点,这会造成结果不优,所以我们可以补......