算法
空 白
仅仅是万千世界当中的一员,也没那么闪亮
展开
-
简单入手双指针——单词拆分
单词拆分题目描述给定一组字符串,里面含有许多单词,每个单词之间都有一个空格隔开,要求单独输出每个单词题目分析通过双指针算法,一端指着单词头,另一端去找单词尾,找到后返回,并将头指向尾,继续寻找,直到找到末尾为止代码实现#include<bits/stdc++.h>#include<string.h>const int N = 1010;using namespace std; int main(){ // 字符串 char str[N];原创 2020-09-03 11:57:04 · 196 阅读 · 1 评论 -
这样实现高精度的运算
高精度加法题目描述给定两个正整数,计算它们的和共两行,每行包含一个整数输出一行,包含所求的和数据长度1<=N<=10000001<=N<=10000001<=N<=1000000问题分析本题数据量庞大,数据长度有100W的长度,因此得将数使用字符串来存,将数字拆开后倒序存储,这样有效解决进位而要改变数组长度的问题,因此这样处理方法简单将两个数进行...原创 2020-03-12 18:23:38 · 91 阅读 · 0 评论 -
浮点二分开平方
开平方题目描述给定一个数,写出算法,将其开方,结果保留6位小数。输入一个数(可以是小数),输出结果为其平方根,结果保留6位小数题目分析采用浮点数二分法,对齐进行找值。假定中值为最终解,给定上下限,然后求中值;比较中值平和与x的大小,并修改其上下限,依次循环代码实现#include<iostream>#include<windows.h> using n...原创 2020-03-08 21:22:09 · 376 阅读 · 0 评论 -
归并排序原来可以这么简单
归并排序题目描述给定你一个长度为n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在111 ~$ 10^9$范围内),表示整个数列。输出格式输出共一行,包含 n 个整数,表示排好序的数列。数据范围1≤n≤1000001≤n≤1000001≤n≤1000001≤n≤...原创 2020-03-07 00:26:58 · 405 阅读 · 0 评论 -
快速排序
快速排序题目描述给定你一个长度为n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在111 ~$ 10^9$范围内),表示整个数列。输出格式输出共一行,包含 n 个整数,表示排好序的数列。数据范围1≤n≤1000001≤n≤1000001≤n≤1000001≤n≤...原创 2020-03-06 20:49:12 · 374 阅读 · 0 评论 -
数的反转——算法
数的反转问题描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231−2^{31}−231, 231−12^{31} − 1231−1]。请根据这个假设,...原创 2020-01-25 20:03:00 · 679 阅读 · 0 评论 -
回文数判断——算法
回文数判断问题描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回...原创 2020-01-25 17:10:36 · 965 阅读 · 0 评论 -
两数之和——算法
两数之和问题描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1...原创 2020-01-23 20:27:51 · 565 阅读 · 0 评论 -
钞票与硬币问题——算法
钞票和硬币问题描述读取一个带有两个小数位的浮点数,这代表货币价值。在此之后,将该值分解为多种钞票与硬币的和,每种面值的钞票和硬币使用数量不限,要求使用的钞票和硬币的数量尽可能少。钞票的面值是100,50,20,10,5,2。硬币的面值是1,0.50,0.25,0.10,0.05和0.01。输入格式输入一个浮点数N。输出格式参照输出样例,输出每种面值的钞票和硬币的需求数量。数据...原创 2020-01-23 17:16:47 · 1234 阅读 · 0 评论 -
天数转换问题——算法
天气转换问题描述读取对应于一个人的年龄(以天为单位)的整数值,并转化为年,月和日表示方式输出,年、月、日分别对应“ano(s)”, “mes(es)”, “dia(s)”。注意:为了方便计算,假设全年365天,每月30天。 数据保证,不会出现12个月和几天的情况,例如360,363或364。输入格式输入一个整数N。输出格式参照输出样例,输出转换后的天数表达。数据范围1≤N≤10...原创 2020-01-23 17:15:02 · 728 阅读 · 0 评论 -
时间转换问题——算法
时间转换问题描述读取一个整数值,它是工厂中某个事件的持续时间(以秒为单位),请你将其转换为小时:分钟:秒来表示。输入格式输入一个整数N。输出格式输出转换后的时间表示,格式为“hours:minutes:seconds”。数据范围1≤N≤10000001≤N≤10000001≤N≤1000000输入样例:556输出样例:0:9:16问题分析首先要知道秒与小时、分钟的...原创 2020-01-23 17:14:16 · 1115 阅读 · 0 评论 -
钞票问题——算法
title: 钞票分解问题date: 2020-01-21 20:51:28categories: 算法comments: truemathjax: truetags:C/C++算法description: 在这个问题中,你需要读取一个整数值并将其分解为多张钞票的和,每种面值的钞票可以使用多张,并要求所用的钞票数量尽可能少。钞票的可能面值有100,50,20,10,5,2,1。...原创 2020-01-21 23:12:35 · 1354 阅读 · 0 评论 -
进制转换——十六进制转八进制
十六进制转八进制题目描述给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。【注意】输入的十六进制数不会有前导0,比如012A。输出...原创 2020-01-21 20:49:28 · 1078 阅读 · 0 评论 -
燃油消耗问题——算法
燃油消耗问题问题描述一辆汽车每行驶12公里需要消耗1升汽油,现在告诉你该汽车的行驶速度S(km/h)和行驶时间T(h),请你计算该车在行驶过程中一共消耗了多少升汽油。输入格式输入共两行,第一行包含一个整数T,表示行驶时间(h)。第二行包含一个整数S,表示行驶速度(km/h)。输出格式输出行驶期间的总油耗,结果保留三位小数。数据范围1≤T,S≤1091≤T,S≤10^91≤T,S...原创 2020-01-21 20:43:56 · 1172 阅读 · 0 评论 -
距离问题——算法
距离问题问题描述两辆汽车在同一地点,同时,沿同一方向前进。一辆车的速度为60 km/h,另一辆车的速度为90 km/h。显然,快车与慢车的距离会不断拉开,每过一个小时(60分钟),两车的距离就拉开30公里。现在,告诉你两车之间的距离为L公里,请你求出两车已经行驶了多长时间?输入格式输入包含一个整数L,表示两车之间的距离。输出格式输出格式为“X minutos”,其中X为已经行驶...原创 2020-01-21 00:46:25 · 1439 阅读 · 0 评论 -
景点游览——算法
景点游览问题描述问题描述小明来到一个景区游玩,但是他的时间有限,没办法逛遍所有的景点,所以他从网上下载了每个景点的评分,他希望能够使游览的景点的评分总和最高,于是他希望你帮他对于N个景点排下序。输入格式输入的第一行包含一个正整数N,表示N个景点。 第二行有N个正整数,表示每个景点的评分值。输出格式输出一行,包含N个正整数,表示N个景点的评分从大到小的排列样例输入43 2 ...原创 2020-01-20 21:20:50 · 1375 阅读 · 4 评论 -
数据交换——算法
数据交换问题描述问题描述 编写一个程序,输入两个整数,分别存放在变量x和y当中,然后使用自己定义的函数swap来交换这两个变量的值。 输入格式:输入只有一行,包括两个整数。 输出格式:输出只有一行,也是两个整数,即交换以后的结果。 要求:主函数负责数据的输入与输出,但不能直接交换这两个变量的值,必须通过调用单独定义的函数swap来完成,而swap函数只负责交换变量的值,不能输...原创 2020-01-20 21:19:56 · 581 阅读 · 0 评论 -
加法运算——算法
加法运算问题描述问题描述 你的表妹正在学习整数的加法,请编写一个程序来帮助她学习。该程序调用了一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示出来。要求:在主函数中不能使用scanf等函数直接输入这两个整数,而必须通过调用GetTwoInts函数来完成,在GetTwoInts函数中可以使用scanf函数。 输入格式:输入只...原创 2020-01-20 21:19:06 · 932 阅读 · 0 评论 -
润年判断——算法
润年判断问题描述问题描述给定一个年份,判断这一年是不是闰年。当以下情况之一满足时,这一年是闰年:年份是4的倍数而不是100的倍数;年份是400的倍数。其他的年份都不是闰年。输入格式输入包含一个整数y,表示当前的年份。输出格式输出一行,如果给定的年份是闰年,则输出yes,否则输出no。说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格...原创 2020-01-20 21:18:04 · 2406 阅读 · 0 评论 -
01字符串——算法
01字符串问题描述问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01串。输入格式本试题没有输入。输出格式输出32行,按从小到大的顺序每行一个长度为5的01串。样例输出00000000010001000011<以下部分省略>...原创 2020-01-20 21:17:05 · 780 阅读 · 0 评论 -
字母图形——算法
字母图形问题问题描述问题描述利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。输入格式输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。输出格式输出n行,每个m个字符,为你的图形。样例输入5 7样例输出A...原创 2020-01-18 20:51:47 · 454 阅读 · 0 评论 -
数列特征问题——算法
数列特征问题描述问题描述给出n个数,找出这n个数的最大值,最小值,和。输入格式第一行为整数n,表示数的个数。第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。输出格式输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。样例输入51 3 -2 4 5样例输出5-211数据规模与约定1 <= n ...原创 2020-01-18 17:28:53 · 218 阅读 · 0 评论 -
查找整数——算法
查找整数题目描述问题描述给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。输入格式第一行包含一个整数n。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。第三行包含一个整数a,为待查找的数。输出格式如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。样例输入61 9 4 8 3 99样例输出2数据规...原创 2020-01-16 23:58:11 · 2047 阅读 · 2 评论 -
杨辉三角问题——算法
杨辉三角形问题描述问题描述杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。下面给出了杨辉三角形的前4行:11 11 2 11 3 3 1给出n,输出它的前n行。输入格式输入包含一个数n。输出格式输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。...原创 2020-01-16 23:43:39 · 2022 阅读 · 0 评论 -
特殊的数字——算法
特殊的数字问题描述问题描述153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1×1×1+5×5×5+3×3×3。编程求所有满足这种条件的三位十进制数。输出格式按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。问题分析首先范围确定,是3位十进制数,其次,是循环遍历输出代码实现#include <iostream>#include <...原创 2020-01-16 13:53:20 · 481 阅读 · 0 评论 -
特殊回文数问题——算法
特殊回文数问题描述问题描述123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式输入一行,包含一个正整数n。输出格式按从小到大的顺序输出满足条件的整数,每个整数占一行。样例输入52样例输出899998989989998899数据规模和约定1<=n<=5...原创 2020-01-15 23:52:36 · 680 阅读 · 0 评论 -
10进制转换为16进制数——算法
10进制转换为16进制数题目描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。 给出一个非负整数,将它表示成十六进制的形...原创 2020-01-15 22:04:17 · 18782 阅读 · 2 评论 -
16进制转换为10进制数——算法
16进制转换为10进制数题目描述问题描述从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535题目分析首先得将16进制数转换为4位二进制数,装入到字符串中,再从字符串总从末尾开始,逐一将2进制转换为10进制数字。(从末尾转换就不存在倒序转...原创 2020-01-15 14:23:00 · 22518 阅读 · 0 评论 -
将16进制数转换为8进制数输出——算法
16进制数转换为8进制数题目描述给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。题目分析将16进制逐位转换为4位2进制,然后再3位一...原创 2019-12-21 10:49:53 · 4449 阅读 · 0 评论 -
序列求和——算法
序列求和题目描述求1+2+3+…+n的值。题目分析说明:请注意这里的数据规模。本题直接的想法是直接使用一个循环来累加,然而,当数据规模很大时,这种“暴力”的方法往往会导致超时。此时你需要想想其他方法。你可以试一试,如果使用1000000000作为你的程序的输入,你的程序是不是能在规定的上面规定的时限内运行出来。本题另一个要值得注意的地方是答案的大小不在你的语言默认的整型(int)范围...原创 2019-12-18 15:55:28 · 1013 阅读 · 0 评论 -
找出数组中重复的数字——算法
找出数组中重复的数字题目描述给定一个长度为 n 的整数数组 nums,数组中所有的数字都在 0∼n−1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。注意:如果某些数字不在 0∼n−1 的范围内,或数组中不包含重复数字,则返回 -1;样例给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。...原创 2019-12-11 17:35:35 · 2073 阅读 · 3 评论 -
数的颠倒——算法
数的颠倒问题描述给定一个范围为 32 位 int 的整数,将其颠倒。例如,给定123,返回321;给定-12, 返回-21;给定120,返回21 。题目分析首先应该判断该数字是否符合题意,是否在给定范围内。其次将判断数字末尾是否包含0,接着注意0作首位情况要舍去0代码实现运行结果总结...原创 2019-12-11 11:08:01 · 1479 阅读 · 0 评论 -
圆的面积——算法
圆的面积题目描述给定圆的半径r,求圆的面积。输入格式输入包含一个整数r,表示圆的半径。输出格式输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。题目分析在本题中,输入是一个整数,但是输出是一个实数。对于实数输出的问题,一定看清楚实数输出的要求本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误的。实...原创 2019-12-10 20:51:32 · 1233 阅读 · 0 评论 -
Fibonacc数列Fn取余——算法
Fibonacc数列Fn项取余题目描述斐波那契数列是一组第一位F1和第二位F2为1,从第三位开始,后一位是前两位和的一组递增数列Fn=Fn-1+Fn-2。 那么当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。如:输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。样例输入10 此时Fibonacc[ ] = {...原创 2019-12-10 18:02:08 · 341 阅读 · 0 评论 -
斐波拉契数列——算法
斐波拉契数列题目描述斐波那契数列是一组第一位F1和第二位F2为1,从第三位开始,后一位是前两位和的一组递增数列Fn=Fn-1+Fn-2。那么当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。如:输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。样例输入10 此时Fibonacc[ ] = {1,1,2...原创 2019-12-10 17:06:29 · 1086 阅读 · 0 评论 -
微生物增殖问题——算法
微生物增殖题目描述假设有两种微生物 X 和 YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。现在已知有新出生的 X=10,Y=90,求60分钟后Y的数目。题目分析此处将半分钟(0.5min)转换成一个0.5秒。一分钟就是2个0.5秒,二分钟就是4个0.5秒,三分钟就是6个...原创 2019-12-05 21:39:39 · 1712 阅读 · 7 评论 -
煤球堆叠问题——算法
煤球堆叠问题题目描述煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),….如果一共有100层,共有多少个煤球?题目分析这里第一层有一颗煤球,第二层放了三颗,第三层放了六颗,其实到这里可以看出每次是扩展了一个三角形的一边。通俗一点讲,第2层加两颗,第3层加三颗,第四层加4颗…第1...原创 2019-12-05 21:38:48 · 3553 阅读 · 0 评论