OJ刷题 第十七篇()

34005 - 汽水瓶(有意思)

时间限制 : 1 秒

内存限制 : 128 MB

有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

输入

输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0表示输入结束,你的程序不应当处理这一行。

输出

对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。

样例

输入

3
10
81
0

输出

1
5
40
#include<iostream>
using namespace std;
int main() {
	int N;
	while (true) {
		cin >> N;
		if (!N) {
			break;
		}
		else {
			int r = N % 3;//不能兑换的瓶子
			int exchange = N / 3;//可兑换的瓶子
			int sum = r + exchange;//喝完后的瓶子加上之前不能兑换的瓶子
			int count = exchange;//喝水的总数
			while (sum >= 2) {
				if (sum == 2) {
					count++;
					break;
				}
				else {
					r = sum % 3;
					exchange = sum / 3;
					count += exchange;
					sum = r + exchange;
				}
			}
			cout << count << endl;
		}
	}
	return 0;
}

分析:这道题挺有意思,就是用空瓶子换水喝的问题,这类题还是比较常见,但是这个题要注意当手里有2个瓶子的情况,从老板手里借一瓶水,喝完后凑成3个瓶子,此时又可以换一瓶水,而这瓶水刚好还给老板。

是否通过:

34007 - 高精度加法(大数运算)

时间限制 : 1 秒

内存限制 : 128 MB

计算两个非负整数之和

输入

从键盘上输入两个非负整数,每个数占一行,每个数的位数不超过240

输出

输出只有一行为两个数之和。

样例

输入

12
13

输出

25

答案:

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
//字符转为数字
inline int f(char c) {
	switch (c) {
	case '0':
	case'\0':
		return 0;
	case '1':
		return 1;
	case '2':
		return 2;
	case '3':
		return 3;
	case '4':
		return 4;
	case '5':
		return 5;
	case '6':
		return 6;
	case '7':
		return 7;
	case '8':
		return 8;
	case '9':
		return 9;
	}
}

int main() {
	char a[300] = { 0 }, b[300] = { 0 }, sum[300] = { 0 };//数组a、b分别表示两个加数,sum表示和
	cin >> a>>b;//输入数据
	//逆序
	int a_len = strlen(a);
	int b_len = strlen(b);
	for (int i = 0, j = a_len - 1; i < j; i++, j--) {
		int tem = a[i];
		a[i] = a[j];
		a[j] = tem;
	}
	for (int i = 0, j = b_len - 1; i < j; i++, j--) {
		int tem = b[i];
		b[i] = b[j];
		b[j] = tem;
	}
	//求出加数较大的位数
	int max = a_len > b_len ? a_len : b_len;
	int jw = 0,SUM=0;
	int length = 0;
	//高精度加法
	for (int i = 0; i < max; i++) {
		SUM = f(a[i]) + f(b[i])+jw;
		jw = SUM / 10;
		sum[i] = SUM % 10 + 48;//数字转为字符
		length++;
	}
	//最高位进位不为0,则和的位数加1
	if (jw != 0) {
		sum[length] = jw + 48;
		length++;
	}
	for (int i = length - 1; i >= 0; i--) {
		cout << sum[i];
	}
	return 0;
}

 分析:这个题可能有人上来就直接用普通的加法进行算术运算,你想想,都到这里了,可能只是简单的算术运算吗??高精度加法运算就是大数运算,就是每个数非常大,long long类型完全放不下那种,此时我们就要用到高精度计算。先回顾小学学的加法运算:

就是从低位开始计算,大于10,向前进位,然后这个位等于这个数和10取余的值。但是计算机中,

首先你不可能用int数组来存每一位,得用char数组来存取两个加数 的每一位

其次,现实中我们是从右往左计算,但是计算机存储的时候只能从低位开始存,1234存到计算机也是1234,但是这不方便进行加法运算,因为要从4开始向前运算,操作有点不方便,因此我们把它逆转,在做加法,如下:

这样 操作对计算机来说就非常又好了,也便于计算。但是要注意最高位进位,比如55+55=110,因为最高位进位为1,此时要判断最高位进位是否不为0,如果不为0,和的位数要加1

是否通过:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 测试框架 Pytest 入门

简介 pytest 是一个功能强大而易于使用的 Python 测试框架。它提供了简单的语法和灵活的功能&#xff0c;用于编写和组织测试代码。 1、简单易用&#xff1a;pytest 的语法简洁明了&#xff0c;使得编写测试用例更加直观和易于理解。它使用 assert 语句来验证预期结果&#x…

SpringBoot内嵌的Tomcat启动过程以及请求

1.springboot内嵌的tomcat的pom坐标 启动后可以看到tomcat版本为9.0.46 2.springboot 内嵌tomcat启动流程 点击进入SpringApplication.run()方法里面 看这次tomcat启动相关的核心代码refreshContext(context);刷新上下文方法 public ConfigurableApplicationContext run(Stri…

银行卡号识别

导入库 from typing import Any, Union, Sequencefrom cv2.mat_wrapper import Mat from imutils import contours import numpy as np import argparse import imutils import cv2 import myutils设置参数 # 设置参数 from numpy import dtype, ndarray, genericap argpars…

“巴渝工匠杯”2022年重庆市职业院校技能大赛(高职组)云计算样题

“巴渝工匠杯”2022年重庆市职业院校技能大赛&#xff08;高职组&#xff09;云计算样题 需要软件包环境可私信博主 【赛程名称】云计算赛项第一场次-私有云 某企业拟使用OpenStack搭建一个企业云平台&#xff0c;以实现资源池化弹性管理、企业应用集中管理、统一安全认证和授…

Visual Studio 2022进行文件差异比较

前言 Visual Studio 2022在版本17.7.4中发布在解决方案资源管理器中比较文件的功能&#xff0c;通过使用此功能&#xff0c;可以轻松地查看两个文件之间的差异&#xff0c;包括添加、删除和修改的代码行。可以逐行查看差异&#xff0c;并根据需要手动调整和编辑文件内容以进行…

易图讯便携式三维电子沙盘实战应用系统

便携式三维电子沙盘采用军工加固三防高性能笔记本&#xff0c;具有IP65级防尘防水防摔性能&#xff0c;以大数据、云计算、虚拟现实、物联网、AI等先进技术为支撑&#xff0c;支持高清卫星影像、DEM高程数据、矢量数据、三维模型、倾斜摄像、BIM、点云、城市白模、等高线、标高…

数据结构学习 jz56数组中数字出现的次数

关键词&#xff1a;位运算 异或性质 虽然有两道题&#xff0c;但是其实应该分成三个级别的题目。 题目一&#xff1a; 一个整型数组 sockets 里除 一个 数字之外&#xff0c;其他数字都出现了两次。 思路&#xff1a;异或的性质 复杂度计算&#xff1a; 时间复杂度O(n) 空…

在Go语言中处理HTTP请求中的Cookie

在Web开发中&#xff0c;Cookie是一种常用的技术&#xff0c;用于在客户端存储数据&#xff0c;并在随后的请求中发送回服务器。Go语言的标准库提供了强大的支持来处理HTTP请求中的Cookie。 首先&#xff0c;让我们了解如何在Go语言中设置Cookie。以下是一个简单的示例&#x…

three.js场景设计器-小地图的视角参考功能

three.js实现场景方向的左上角小地图 思路 1&#xff1a;创建单独场景 2.添加辅助线 3.添加坐标轴的XYZ文字-使用sprite实现 4.旋转主视图时同步相机位置到小地图。 <template> <div ref"miniMapContainer" class"mini-map"></div>…

Apache Commons Email在邮件发送中的应用

第1章&#xff1a;简介 大家好&#xff0c;我是小黑&#xff0c;今天咱们聊聊Apache Commons Email这个库&#xff0c;它在发送邮件方面可谓是小而美的利器。Apache Commons Email基于JavaMail API&#xff0c;但它提供了更简洁、更易用的接口&#xff0c;让咱们在处理电子邮件…

如果PostgreSQL有两层nginx代理,会发生什么事?

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 1. 前言 PostgreSQL默认只能本机连接&#xff0c;若要在别的客户端远程连接pgsql&#xff0c;则需要修改配置文件pg_hba.conf&a…

CommonJS 和 ES6 Module:一场模块规范的对决(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

QML —— SwipeView、PageIndicator组合示例(附完整源码)

示例效果 介绍 SwipeView提供了一个基于滑动的导航模型,由一组页面组成。一次只能看到一个页面。用户可以通过横向滑动在页面之间导航。请注意,SwipeView本身是完全不可见的。建议将其与PageIndicator结合使用,以向用户提供有多个页面的视觉线索。 PageIndicator用于指示包含…

UG装配-沿线运动

如果希望图中圆柱销沿着槽运动&#xff0c;直接约束面是困难的&#xff0c;我们可以画出圆弧的中心线和圆柱销的中心点&#xff0c;约束点在线上&#xff0c;进行移动 需要注意的是&#xff0c;我们在零件中画点和线的时候&#xff0c;在装配体默认加载模型引用集的时候是无法显…

生活中的物理3——神奇陷阱(随机倒下的抽屉柜门)

1实验 材料&#xff1a;大自然&#xff08;风&#xff09;、抽屉门松掉的抽屉 实验 1、找一个大风的日子&#xff0c;打开窗户&#xff08;不要找下雨天&#xff0c;不然你会被你亲爱的嫲嫲KO&#xff09; 2、让风在抽屉面前刮过 3、你发现了什么&#xff1f;&#xff1f;&…

南某人:从工厂到品牌的华丽转身!

南某人&#xff0c;这个名字在中国的市场上已经响当当&#xff0c;但你知道吗&#xff1f;这个品牌其实并没有自己的工厂和门店。那么&#xff0c;他们是如何做到年收入高达40亿的呢&#xff1f; 起初&#xff0c;南某人和许多中国品牌一样&#xff0c;从生产保暖内衣起家。然…

傅里叶级数、傅里叶变换、小波变换、离散余弦变换的理解

目录 1. 傅里叶级数2.傅里叶变换 1. 傅里叶级数 功能&#xff1a;能把任意周期性函数展开成一系列正弦、余弦函数的和。 公式&#xff1a; f ( x ) a 0 2 ∑ n 1 ∞ ( a n cos ⁡ ( 2 π n x T ) b n sin ⁡ ( 2 π n x T ) ) 傅里叶系数 a n 2 T ∫ x 0 x 0 T f ( x )…

机器学习(三) -- 特征工程(1)

系列文章目录 机器学习&#xff08;一&#xff09; -- 概述 机器学习&#xff08;二&#xff09; -- 数据预处理&#xff08;1-3&#xff09; 机器学习&#xff08;三&#xff09; -- 特征工程&#xff08;1-2&#xff09; 未完待续…… 目录 系列文章目录 前言 一、特征…

nginx 一、安装与conf浅析

文章目录 一、安装nginxdocker方式安装linux方式安装Ubuntu 或 Debian 系统&#xff1a;CentOS 或 RHEL 系统&#xff1a; macOS 系统&#xff08;使用 Homebrew&#xff09;&#xff1a;Windows 系统&#xff1a; 二、nginx.conf浅析 Nginx&#xff08;发音为“engine-x”&…

服务器CentOs8 安装RocketMQ 4.9.4

前置条件 安装好java环境 下载、上传、解压 下载二进制包 传送门 上传到服务器&#xff0c;这里上传到了/usr/local目录下 解压&#xff1a; unzip rocketmq-all-4.9.4-bin-release.zip移动到新的文件夹 mv /rocketmq-all-4.9.4-bin-release /rocketmq修改配置 修改conf下…