当前位置: 首页 > 编程日记 > 正文

关于60枚一分两分五分硬币凑成一块钱的解决方法

关于60枚一分两分五分硬币凑成一块钱的解决方法

一.强行三重for循环

#include<stdio.h>
int main()
{int a, b, c;for (a = 1; a < 60; a++){for (b = 1; b <= 60; b++){for (c = 1; c <= 60; c++){if (100 == 5 * c + 2 * b + a && 60 == a + b + c){printf("%d %d %d\n", a, b, c);}}}}return 0;
}

结果为
在这里插入图片描述
三重循环的时间复杂度太高了,不是解决这个问题的最优方法。

二.减少一重循环,即两重循环

#include<stdio.h>
int main()
{int a, b, c;for (a = 1; a < 10; a++){for (b = 1; b < 60 - a; b++){c = 60 - a - b;if (100 == 5 * c + 2 * b + a && 60 == a + b + c){printf("%d %d %d\n", a, b, c);}}}return 0;
}

其结果也为
在这里插入图片描述
两重循环的时间复杂度比起三重循环又有所下降,但还有更优解。

三.一重循环,通过解方程的形式来减少循环次数

#include<stdio.h>
int main()
{int a, b, c;for (c = 1; c < 10; c++){a = 20 + 3 * c;b = 40 - 4 * c;if (a>=0 && b>=0){printf("%d %d %d\n", a, b, c);}}return 0;
}

其结果为
在这里插入图片描述
这次的时间复杂度较前两种方法大大降低。
方程如下
a+2b+5c=100
a+b+c=60
解得的式子为
a = 20 + 3 * c
b = 40 - 4 * c
注意:
if语句中的条件因为a、b、c已经满足了a+2b+5c=100、a+b+c=60等条件,故只需要再判断a和b是否大于或等于0即可(因为题目规定a、b不能为负数)

相关文章:

hbase RPCServer源码分析

前置知识&#xff1a; java&#xff0c;nio&#xff0c;多线程 看了几天的源码&#xff0c;写一些自己心得&#xff0c;若有错误请指出。 RPCServer的作用&#xff1a;负责创建listener&#xff0c;reader&#xff0c;responser&#xff0c;handler来处理client端的请求。 RPCS…

Maya创建科幻3D动画循环场景视频教程

Maya创建科幻3D动画循环场景视频教程 Skillshare – Create a Sci-Fi 3D Animation Loop in Autodesk Maya 持续时间3h 27m 包括项目文件 1280X720 Mkv 语言&#xff1a;英语中文字幕&#xff08;根据原英文字幕机译更准确&#xff09;原英文字幕 大小解压后 3.05G 共20小节课…

2022-2028年中国氢化丁腈橡胶行业市场深度分析及投资规模预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国氢化丁腈橡胶行业市场行业相关概述、中国氢化丁腈橡胶行业市场行业运行环境、分析了中国氢…

js中的json对象和字符串之间的转化

字符串转对象(strJSON代表json字符串) var obj eval(strJSON); var obj strJSON.parseJSON(); var obj JSON.parse(strJSON)&#xff1b; json对象转字符串(obj代表json对象) var str obj.toJSONString(); var str JSON.stringify(obj) 运用时候需要除了eval()以外需要jso…

三种方式实现分布式锁

通过以上过程你可以发现锁的获取是按照创建时间来的,谁先来争取锁谁就先获得锁,因此它实现的是公平锁。答案是不能,以Synchronized关键字为例,Synchronized关键字无论是在偏向锁、轻量级锁还是重量级锁状态都不能实现这点,如重量级锁,重量级锁是靠系统底层的互斥量Mutex实现的,也就是说每个节点(服务器)所使用的互斥量是分开的,节点A的互斥量是无法锁住节点B的线程访问临界区,因此Synchronized关键字只能保证单服务器内的JVM进程的不同线程同步,是不能用做分布式环境中来保证线程同步。

超级挂载 实现过程-代码

公司产品是给机顶盒或者电视做的&#xff0c;玩的就是大型游戏&#xff0c;一个游戏常常能有G级别的数据包&#xff0c;于是产生一个需求&#xff0c;将游戏的数据包存放在外置sdcard上&#xff0c;用户差一个32G的卡能随便玩游戏&#xff0c;不占用设备自身的存储容量&#xf…

synchronized对象锁与类锁用法&如何用synchronized锁字符串对象,这里面的坑要注意

我们使用synchronized通常都有这样一个误区:synchronized锁住的代码块一定是所有线程都互斥的。其实不然!首先我们明确一点,synchronized锁住的是一个对象!如果锁住的这个对象,在多个线程中相同,那么这些线程访问synchronized修饰的代码块时,总是互斥的。但是!如果锁住的这个对象,在多个线程中是不同的,那么这些线程访问synchronized修饰的代码块,是不会互斥的!

浅谈Java分布式与集群

在日常操作中,相信很多人在怎么理解Java分布式与集群问题上存在疑惑,今天就大概说说,不注意听,觉得两个可能是同一个东西,其实这个是两个概念。一句话概括:分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。

550种Blender风格化笔刷素材

550种Blender风格化笔刷素材 550Blender刷风格化版(包括4K阿尔法) 大小解压后&#xff1a;3G 信息: 一个伟大的自定义风格化的刷子使用Blender收集。Alphas包含在其他软件中使用。 ArtStation – [MEGAPACK] 550 Blender Brushes Stylized Edition (4K Alphas Included) Bl…

synchronized用法详解

synchronized 是 Java 中的关键字,是一种同步锁。主要应用于多线程环境下保证线程的安全性。A. 无论synchronized关键字加在方法上还是对象上,如果它作用的对象是非静态的,则它取得的锁是对象;如果synchronized作用的对象是一个静态方法或一个类,则它取得的锁是对类,该类所有的对象同一把锁。B. 每个对象只有一个锁(lock)与之相关联,谁拿到这个锁谁就可以运行它所控制的那段代码。C. 实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制。

POJ 3723

最大生成树 #include<iostream> #include<cstdio> #include<cstring> #include<set> #include<algorithm> #include<stack> #include<map> #include<queue> #include<list> #include<vector> using namespace std…

有关Run-Time Check Failure #2 - Stack around the variable 'XXX' was corrupted.错误的解决方法

有关Run-Time Check Failure #2 - Stack around the variable ‘XXX’ was corrupted.错误的解决方法 今天我在敲完一段代码运行的时候出现一个错误&#xff0c;如下&#xff1a; Run-Time Check Failure #2 - Stack around the variable ‘filename’ was corrupted. 大概意…

Nginx搭建负载均衡集群

(1).实验环境 youxi1 192.168.5.101 负载均衡器 youxi2 192.168.5.102 主机1 youxi3 192.168.5.103 主机2 (2).Nginx负载均衡策略 nginx的负载均衡用于upstream模板定义的后端服务器列表中选取一台服务器接收用户的请求。一个基本的upstream模块如下&…

如何卸载iPhone模拟器中的自己创建的程序

当你使用iPhone模拟器测试过很多程序以后&#xff0c;模拟器中放置了大量无用的程序。 一直在找如何清除这些程序&#xff0c;其实后来发现很简单。 模拟器本身就带将这些程序清除到垃圾箱的功能。如下图所示&#xff1a;点击上图所示的命令“还原内容和设置...”后出现如下图所…

MySQL存储引擎的介绍

数据库存储引擎是数据库底层软件组件&#xff0c;数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能&#xff0c;使用不同的存储引擎还可以获得特定的功能。 现在许多数据库管理系统都支持多种不同的…

Maya和Arnold的高级照明实践

Maya和Arnold的高级照明实践 时长6小时20分钟 包括项目文件 1920X1080 MP4 语言&#xff1a;英语机译中文字幕 大小&#xff1a;14.8G 题目&#xff1a;FXPHD - MYA312 - Maya & Arnold的高级照明实践 FXPHD - MYA312 - 玛雅和阿诺德的高级照明实践。 信息&#xff1a;本…

读《大道至简》第六章感想

语言确实是种工具&#xff0c;但我们不应该忽略工具的作用。我们想什么&#xff0c;去做什么事会决定使用什么工具&#xff0c;但反过来我们有什么工具也会决定我们怎么想&#xff0c;怎么做事。如果工具没有提供这个功能&#xff0c;你就不会向这方面想&#xff0c;也就不会这…

Java学习总结:1

Java的特性 1.简洁有效 2.可移植性 3.面向对象 4.解释型 5.适合分布式计算 6.拥有较好的性能 7.健壮、防患于未然 8.具有多线程处理能力 9.具有较高的安全性 10.是一种动态语言 11.是一种中性结构 Java在开发上有三个分支 一.Java EE(Java企业级开发) 二.Java SE(Java标准版…

2022-2028年中国轻型输送带行业市场发展规模及市场分析预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国轻型输送带行业市场行业相关概述、中国轻型输送带行业市场行业运行环境、分析了中国轻型输…

从零开始写个编译器吧 - 单词化简述(Tokenization)

2019独角兽企业重金招聘Python工程师标准>>> 实际上&#xff0c;所谓的源代码&#xff0c;我们可以将其视为一段长长的字符串。所谓字符串&#xff0c;即是字符的有序集。但是&#xff0c;字符本身作为编译器的输入单位&#xff0c;粒度实在太小了&#xff0c;因此&…

springboot+mybatis ,出现多于的参数导致查询数据缺少

在springbootmybatis 中&#xff0c;经常会有多于的字段遗留在xml文件中&#xff0c;这种情况正常人会以为会判断空和null状态&#xff0c;不影响sql语句&#xff0c;但是实际上会有影响&#xff0c; 因为在parameter中未定义&#xff0c;是undefined&#xff0c;而不是null和空…

【C4D教程】Octane渲染大师班

【C4D教程】Octane渲染大师班 本套教程共9大章 4小时20分 高清1920X1080 mp4 视频 英语机译中文字幕 大小 17.8G 信息。 云桥网络 平台获取教程 学习使用Cinema 4D和Octane Render创建惊人渲染的过程和工作流程。 实践分析和指导。 7个项目文件可供学习和借鉴。 C4D Octa…

Java学习总结:2

java的注释 /***文档注释*这种注释的内容会被解释成程序的正式文档*/ public class TestDemo {public static void main(String args[]){System.out.println("Hello MLDN");//System的首字母要大写&#xff0c;否则会显示程序包system不存在/*多行注释............*…

Android采用Application总结一下

什么是 Application   Application和Activity,Service由于是android框架的一个系统组件&#xff0c;当android程序启动时系统会创建一个 application对象。用来存储系统的一些信息。通常我们是不须要指定一个Application的&#xff0c;这时系统会自己主动帮我们创建&#xff…

nginx介绍及常用功能

什么是nginx nginx跟Apache一样&#xff0c;是一个web服务器&#xff08;网站服务器&#xff09;&#xff0c;通过HTTP协议提供各种网络服务。 Apache&#xff1a;重量级的&#xff0c;不支持高并发的服务器。在Apache上运行数以万计的并发访问&#xff0c;会导致服务器消耗大…

网页制作常见的问题(怎样兼容IE6/IE7/火狐浏览器)

1、IE6双边距问题&#xff1f; 在IE6的浏览器中明明设置的是10px的margin却为什么显示的是20px的margin其实这个Ie6的一个双边距BUG 例如: <style type"text/css"> body {margin:0} div { float:left; margin-left:10px; width:300px; height:300px; border:1p…

Ubuntu系统---安NVIDIA 驱动后 CUDA+cuDNN 安装

Ubuntu系统---安NVIDIA 驱动后 CUDAcuDNN 安装 --------------------------------------------20190726--------------------------------------------------------------------------------------------- 上接《Ubuntu系统---NVIDIA 驱动安装》。预配置环境&#xff1a;Ubunt…

Maya基础入门学习教程

Maya基础入门学习教程 视频&#xff1a;.MKV, 1280x720, 共57节课 时长 4小时25分钟&#xff0c;3GB 语言&#xff1a;英语中文字幕&#xff08;根据原英文字幕机译更准确&#xff09;原英文字幕 指导老师&#xff1a;Shane Whittington Shane Whittington 百度一下 云桥网…

java学习总结:3

逻辑运算 1.’!’(非) 2.与(多个条件一起满足) Java中&&和&都是表示与的逻辑运算符&#xff0c;都表示逻辑运输符and&#xff0c;当两边的表达式都为true的时候&#xff0c;整个运算结果才为true&#xff0c;否则为false。 ’&&的短路功能&#xff0c;当…

asp.net httpmodule 访问页面控件 备忘

用到的时候发现还得找代码&#xff0c;存一个例子方便自己和他人修改&#xff1a; using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls;…