OJ系统刷题 第九篇(难篇)

news2024/10/4 19:27:12

13441 - 求小数的某一位(难题,二刷、三刷!)

时间限制 : 1 秒

内存限制 : 128 MB

分数\tfrac {a}{b}ba​化为小数后,小数点后第n位的数字是多少?

输入

三个正整数a,b,n,相邻两个数之间用单个空格隔开。0<a<b<100,1≤n≤10000。

输出

一个数字。

样例

输入

1 2 1

输出

5

答案:

#include<iostream>
using namespace std;
int main() {
	int a, b, n;
	cin >> a >> b >> n;
	int k = a;
	for (int i = 1; i <= n-1; i++) {

		k = k * 10 % b;
	}
	cout << k * 10 / b << endl;
	return 0;
}

分析: 这道题初次上手可能首先你会觉得很简单。可能你的做法就是把这个小数用一个double类型变量来接受。然后乘n次10,最后取这个数的个位即可。恭喜你,和我刚开始的一样。但是答案是错的。你想想

首先、1/3这个小数存在double类型变量中精度只有15位,当你求100位的时候是求不出正确结果的,因为double类型变量的精度只有15位。超过15位的小数是不知道的。

其次、当循环小数循环体大于15位时,这种方法显然是不对的。

正确做法,令

k=a,其中a为分子,求第n为小数数字,循环n-1次,循环做k=k*10%b;自己动手体会这个语句的算法思想,第一次做整体可能完全想不到这种思想最后一次循环 k*10/b;最后一步也同等重要

是否通过:

13442 - 计算星期几(难题二刷、三刷)

时间限制 : 1 秒

内存限制 : 128 MB

假设今天是星期日,那么过a^bab天之后是星期几?

输入

两个正整数a,b,中间用单个空格隔开。0<a≤100,0<b≤10000。

输出

一个字符串,代表过a^bab天之后是星期几。

其中,Monday是星期一,Tuesday是星期二,Wednesday是星期三,Thursday是星期四,Friday是星期五,Saturday是星期六,Sunday是星期日。

样例

输入

3 2000

输出

Tuesday

答案:

#include<math.h>
using namespace std;
int main() {
	int a, b;
	cin >> a >> b;
	int result=1;
	for (int i = 1; i <= b; i++) {
		result *= a;
		result %= 7;
	}
		switch (result) {
		case 1: 
			cout << "Monday" << endl;
			break;
		case 2:
			cout << "Tuesday" << endl;
			break;
		case 3:
			cout << "Wednesday" << endl;
			break;
		case 4:
			cout << "Thursday" << endl;
			break;
		case 5:
			cout << "Friday" << endl;
			break;
		case 6:
			cout << "Saturday" << endl;
			break;
		default:
			cout << "Sunday" << endl;
			break;
		} 
		return 0;
}

 分析:根据输入样例可知,a^b可能会非常非常大,即使是long long类型也存不下。因此想通过先算出a^b这个结果再进行下一步计算是不可能的。得另寻他法,当然我第一次写这个题是没想到,是借鉴别人的代码思想写出来的。其核心是:对下面语句做b次循环。

result=result*a;

result=result%7;

最后result的值是多少就是星期几。这道题和 上面计算小数的第n位数字很像。这几道题应该都是这种思想

当一个数很大的时候,没有变量可以存放的时候,这时候就要通过这个数的构造进行乘法、取模等运算使得求得的数值保持在一个小的范围内。直到得到结果

 是否通过:

13443 - 幂的末尾(建议二刷)

输入

两个正整数a,b。1≤a≤100,1≤b≤10000。

输出

从高位到低位输出幂的末三位数字,中间无分隔符。若幂本身不足三位,在前面补零。

样例

输入

7 2011

输出

743

答案:

#include<iostream>
using namespace std;
int main() {
	int a, b;
	cin >> a >> b;
	int result = 1;
	int ge, shi, bai;
	for (int i = 1; i <= b; i++) {
		result = result * a % 1000;
		ge = result % 10;
		shi = result / 10 % 10;
		bai = result / 100 % 10;
	}
	int s = bai * 100 + shi * 10 + ge;
	if (s < 10) {
		cout <<"00" << s << endl;
	}
	else if (s >= 10 && s < 100) {
		cout << "0"<< s << endl;
	}
	else {
		cout << s << endl;
	}
	return 0;
}

 分析:这道题初次来做是很难的。因为末尾三位也就在1000范围内,超过1000的也就是千位是没意义的。

result = result * a % 1000;//仔细体会这句语句

大家可以用2的n次幂来模仿计算找规律。

是否通过:

13448 - 百钱买百鸡(纯数学问题)

时间限制 : 1 秒

内存限制 : 128 MB

小明有一百块钱, 打算买一百只鸡, 现在公鸡三块钱一只,母鸡二块钱一只, 小鸡一块钱三只.

现在, 请你编一程序, 帮小明计划一下, 怎么样买法, 才能刚好用一百块钱买一百只鸡.

输入

输出

输出100元买鸡的各种方案,每个方案分别以一行输出公鸡数、母鸡数与小鸡数,以公鸡数量最大、母鸡次之、小鸡最后的顺序给出每个方案,如下面片段:

25 0 75

20 8 72

...

样例

输入

输出

答案:

#include<iostream>
using namespace std;
int main() {
	int i=0, j=0, k=0;//分别表示公鸡、母鸡、小鸡的数目
	int count = 0, price = 0, flag = 0;
	for (i = 33; i >= 0; i--) {
		for (j = 50; j >= 0; j--) {
			for (k = 110; k >= 0; k--) {
				count = i + j + k;
				price = 3 * i + 2 * j + k / 3;
				flag = k % 3;
				if (count == 100 && price == 100 &&flag == 0) {
					cout << i << " " << j << " " << k << endl;
				}
			}
		}
	}
	return 0;
}

 分析:很多人可能没想明白,为什么公鸡的数量小于33,母鸡数量小于等于50,因为100块钱最多只能买32只公鸡,50只母鸡。其实大家还可以自己再优化。这里是纯粹的数学问题简化。

是否通过:

13451 - 危险的实验

时间限制 : 1 秒

内存限制 : 128 MB

小明最近在上化学课,他需要使用到 n 种化学物质来进行他的实验。在做实验的 时候, 他需要将所有化学物质放在桌面上,按次序排成一条直线。

然而每一种化学物质都是危险品,对于第 i 个化学物质,如果有另外一个化学物 质距离它的距离小于 ai,那么就会发生爆炸。

小明想知道如果要安全的完成他的实验,桌子最短可以多短。

输入

第一行一个整数n,表示化学物质的个数。

第二行有n 个整数,第 i 个整数 ai 表示第i 个化学物质必须与其他化学物质保 持的距离。

输出

输出一行,包括一个整数,表示能够让小明安全完成实验的桌子最小长度。注意: 物品要安原来的次序摆放。

样例

输入

3
3 1 2

输出

5

提示

20%的数据,1<=n<=20

50%的数据,1<=n<=100000

100%的数据,1<=n<=1000000,1<=ai<=100000

 答案:

#include<iostream>
using namespace std;
int main() {
	int n;
	cin >> n;
	int final,previous=0;
	long long sum = 0;
	for (int i = 1; i <= n; i++) {
		cin >> final;
		if (final > previous && i != 1) {
			sum += final;
		}
		else if(final <= previous && i != 1){
			sum += previous;
		}
		previous = final;
	}
	cout << sum << endl;
	return 0;
}

分析:这道题还是有难度的,我在做这道题的时候,由于第一次做,对题目意思理解不是很清楚。先说说题目的意思。题目的意思是

首先:至少得有两种化学药品。不可能只有一种药品,因此n不可能为1。

其次:就是这个距离的范围,开始没注意题目下边的提示,用int范围内的数据表示距离,发现完全不够,只能过前两个测试点,但是等n很大,而且每个a[i]也很大时,发现距离范围高达50亿,int范围是表示不了的。

最后:就是逻辑了,当输入的当前距离比前一种物品距离小,则加上前一种物品的距离。否则加上当前物品的距离,因此得用一个变量previous来记录前一个物品的距离。

这个题有很多种变形,重要的是理解题目意思和掌握它的逻辑算法。

是否通过:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/421738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用jni-rs实现Rust与Android代码互相调用

本篇主要是介绍如何使用jni-rs。有关jni-rs内容基于版本0.20.0&#xff0c;新版本写法有所不同。 入门用法 在Rust库交叉编译以及在Android与iOS中使用中我简单说明了jni-rs及demo代码&#xff0c;现在接着补充一些详细内容。 首先贴上之前的示例代码&#xff1a; use std:…

嘉靖王朝最大的一出闹剧和惨剧——大礼仪之争

大礼仪之争 大礼议是指发生在正德十六年&#xff08;1521年&#xff09;到嘉靖三年&#xff08;1524年&#xff09;间的一场皇统问题上的政治争论。 原因是明世宗以地方藩王入主皇位&#xff0c;为其改换父母的问题所引起&#xff0c;是明朝历史第二次小宗入大宗的事件。 “…

罗丹明荧光染料标记叶酸,FA-PEG-RB,叶酸-聚乙二醇-罗丹明;Folic acid-PEG-RB

FA-PEG-RB,叶酸-聚乙二醇-罗丹明 中文名称&#xff1a;叶酸-聚乙二醇-罗丹明 英文名称&#xff1a;FA-PEG-RB, Folic acid-PEG-RB 性状&#xff1a;粉红色固体或液体&#xff0c;取决于分子量 溶剂&#xff1a;溶于水和DMSO、DMF等常规性有机溶剂 保存条件&#xff1a;-2…

【Python】【进阶篇】二十一、Python爬虫的多线程爬虫

目录二十一、Python爬虫的多线程爬虫21.1 多线程使用流程21.2 Queue队列模型21.3 多线程爬虫案例1) 案例分析​2) 完整程序二十一、Python爬虫的多线程爬虫 网络爬虫程序是一种 IO 密集型程序&#xff0c;程序中涉及了很多网络 和 本地磁盘的 IO 操作&#xff0c;这会消耗大量…

自绘 MFC 控件 CComboBox

运行效果: 第一步:在窗口中拖拽一个CComboBox控件,设置如下属性: 类型,设置为:下拉列表包含字符串,设置为:True所有者描述,设置为:Variable 注意: 包含字符串,不设置为True,则使用GetLBText等函数无法获取到Item的text;所有者描述,设置为No,不执行DrawItem、M…

实战大数据项目

存储日志数据集&#xff08;HDFS&#xff09; 数据仓库构建&#xff08;Hive&#xff09; 数据分区表构建 数据预处理 &#xff08;Spark计算引擎&#xff09;-使用Zeppelin进行写SQL 订单指标分析 Sqoop数据导出到传统数据库&#xff08;Mysql&#xff09; Superset数据…

Vue2_02_指令

模板语法 — Vue.js (vuejs.org) 指令 (Directives) 是带有 v- 前缀的特殊 attribute 参数 一些指令能够接收一个“参数”&#xff0c;在指令名称之后以冒号表示 <a v-bind:href"url">...</a> 动态参数 可以用方括号括起来的 JavaScript 表达式作为一…

企业消费管理迈向数字化,助力员工满意度提升,解决行政·财务·采购等部门痛点 | 爱分析调研

调研&#xff1a;李进宝 撰写&#xff1a;李进宝 某市场巡视人员&#xff1a;每次出差都要垫钱&#xff0c;每月还只能报销一次&#xff0c;这不是自费上班吗&#xff1b; 某软件研发人员&#xff1a;我们每天都要加班到很晚&#xff0c;公司提供晚餐&#xff0c;但高油高盐&…

ERP系统应用场景,API接口接入

ERP订单管理系统能为企业带来什么 1、ERP订单管理系统可以对工厂物料采购的时间进行提示&#xff0c;根据产品目前的库存情况来进行确定&#xff0c;并比较物料采购时所需要支付的费用是多少&#xff0c;什么时候采购价格相对更加便宜。 2、在产品的生产方面&#xff0c;涉及…

Linux远程连接虚拟机超时,且ip地址找不到问题解决

ip地址虚拟机自动更改&#xff1a; 原因&#xff1a;Linux没有正常关机 解决&#xff1a;从虚拟机在自己电脑上的文件地址中bin目录下&#xff0c;前面几个以.lck的文件全部删除 Linux远程连接虚拟机超时&#xff1a; 原因可能跟上面是一样的&#xff0c;IP地址自动修改之后自…

华为 ADS 2.0 发布,城区智驾之战「白热化」

作者 | 马波编辑 | 德新虽然上海车展还未正式拉开帷幕&#xff0c;但今天的华为却通过一系列新品的发布为今年的汽车盛会进行了预热。就在今天上午&#xff0c;华为车BU正式发布了一系列新品&#xff0c;同时也对部分现有产品进行了升级。其内容之多、升级的幅度之大&#xf…

Maven项目中的依赖出现版本冲突,最终发现是对Dependency Scope理解有误

再来个文章目录 文章目录背景疑问排查过程问题存在的原因总结示例依赖版本说明本文记录一下遇到maven依赖版本冲突后的排查过程说明以及问题原因说明 下面还有投票&#xff0c;帮忙投个票&#x1f44d; 背景 最近加入了 Apache Dubbo 开源社区&#xff0c;成为了一名Dubbo Con…

【K8S系列】深入解析Pod对象(一)

目录 序言 1.问题引入 1.1 问题描述 2 问题解答 2.1 pod 属性 2.1.1 NodeSelector 2.1.2 HostAliases 2.1.3 shareProcessNamespace 2.1.4 NodeName 2.1.5 其他pod属性 2.2 容器属性 2.2.1 ImagePullPolicy 2.2.2 Lifecycle 3 总结 4. 投票 序言 任何一件事情&am…

Zabbix代理服务器

Zabbix代理服务器一、部署 zabbix 代理服务器1、设置 zabbix 的下载源&#xff0c;按照 zabbix-proxy2、安装zabbix所需数据库3、添加数据库用户&#xff0c;以及 zabbix 所需的数据库信息4、导入数据库信息5、修改配置文件6、配置 agent 使用 proxy二、设置 zabbix-snmp 监控1…

dubbo2.7升级到dubbo3--dubbo2.7升级到dubbo3系列

最近在做老系统升级(springboot2dubbo2.7.1zookeepernacos-config)&#xff0c;去掉zookeeper的注册中心&#xff0c;替换成nacos2.1版本&#xff08;阿里云已经不支持1.X版本了&#xff09;-对应的需要升级springboot和dubbo3。最终升级完成了&#xff0c;其中遇到的诸多问题&…

Unity VFX -- (1)概览

视觉特效&#xff08;Visual Effects&#xff0c;VFX&#xff09;在实时3D项目中能够带来惊艳的效果&#xff0c;其范围很广&#xff0c;比如水花四溅、迷雾、火焰、爆炸效果等。 如果没有VFX&#xff0c;整个环境会让人感到非常呆板无聊。这些特效会让环境生动起来&#xff0c…

nodejs微服务:RPC与GRPC框架

RPC RPC(Remote Procedure Call Protocol)&#xff0c;是远程过程调用的缩写通俗的说就是调用远处的一个函数&#xff0c;与之相对应的是本地函数调用 本地函数调用&#xff1a;参数&#xff0c;返回值&#xff0c;代码段都在本地的一个进程空间内远程函数调用&#xff1a;远程…

【pan-sharpening 攻击:目标检测】

Adversarial pan-sharpening attacks for object detection in remote sensing &#xff08;对抗性泛锐化攻击在遥感目标检测中的应用&#xff09; 全色锐化是遥感系统中最常用的技术之一&#xff0c;其目的是将纹理丰富的PAN图像和多光谱MS图像融合&#xff0c;以获得纹理丰…

docker上面安装mysql

一、docker安装mysql 新建配置 /data/mysql3306/conf/my.cnf(新建logs,data,conf/my.cnf 后面要用) 详情&#xff1a; [mysql] #设置mysql客户端默认字符集 default-character-setUTF8MB4[mysqld] #设置3306端口 port3306#允许最大连接数 max_connections200#允许连接失败的次…

Spring事务(3)-TransactionInterceptor实际事务执行

Spring事务&#xff08;2&#xff09;-EnableTransactionManagement实现源码解析 中介绍了Spring事务开启和代理的实现&#xff0c;现在了解实际事务执行TransactionInterceptor。 TransactionInterceptor TransactionInterceptor类图 MethodInterceptor&#xff1a;AOP代理后…