自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 16 门票价格计算

问题描述 :某旅游景点门票价格为每人5元。但团体可以优惠,分为以下情况:人数超过20,则所有人优惠10%;人数超过40,则所有人优惠15%;人数超过80,则所有人优惠20%;人数超过120,则所有人优惠30%。请跟据团体的人数,求出该团体的总门票价格。输入说明 :你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组输入数据占一行,其中只包含一个整数i(0≤i≤1,000),表示一个团体的总人数。在行首和行尾没有多余的空格。输出说明 :对每组测试数据,你的程

2021-03-13 23:48:24 455 1

原创 15 三角形

问题描述 :“明明,你会用1到9这九个数字组成一个三角形吗?”明明的爸爸问明明。明明被问的很莫名其妙,不明白他爸爸在说什么,于是就问道:“用1到9组成三角形???”“是的,我的要求很简单,给你2个数,一个数作为这个三角形的开始,另一个数决定这个三角形的大小。例如我给你5和6这两个数,你就要组成如下的一个三角形:56 78 9 12 3 4 56 7 8 9 12 3 4 5 6 7明白了吗?”明明观察了许久,终于看出了门道来,说道:“就是说给我2个数,例如5和6,那我就要从5这个数开

2021-03-11 17:09:43 261

原创 14 黑色星期五

问题描述 :13号又是星期五是一个不寻常的日子吗? 13号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在n年里13 日落在星期一,星期二…星期日的次数.这个测试从1900年1月1日到 1900+n-1年12月31日.n是一个非负数且不大于400.这里有一些你要知道的: 1900年1月1日是星期一. 4,6,11和9月有30天.其他月份除了2月都有31天.闰年2月有29天,平年2月有28天.输入说明 :一个整数n(1<= n <= 400).输出说明 :七个在

2021-03-11 16:47:49 367

原创 13 奇妙的比值

问题描述 :明明喜欢钻研各种各样的数学问题。一天,明明对数的因子产生了兴趣,他想把一个数的所有因子都找出来,然后把它们相加再去除以这个数,这样会得到一个比值。明明想看看不同的数的该比值会有什么不同,以便做研究。例如6这个数,它一共有4个因子,分别是:1、2、3、6,把他们相加然后再除以6,即1+2+3+6=12,12/6=2,就可以得到2这个比值。明明为了研究,需要得到大量的比值,但是如果通过手动计算比值的话需要花大量的时间,于是明明就想请你帮忙,帮他写一个程序,能够求数的比值。 明明的问题可以

2021-03-10 23:43:33 122

原创 12 abc数字

问题描述 :明明的爸爸是一位著名的数学家同时也是一位著名的数学启蒙老师。他经常出一些简单而有趣的数学题目来给刚刚接触数学的小朋友做,培养他们对数学的兴趣。一天,明明的爸爸想到了这样一个题目。如果有a、b、c三个1位的正整数,那么按以下的方法构成2个三位数:第一种方法是a为百位,b为十位,c为个位,构成的数就是abc;第二种方法是c为百位,b为十位,a为个位,构成的数就是cba;然后将这两个三位数相乘,会得到另一个数。现在就要数一下这个相乘后所得到的数中,有几个数字是与a、b、c相同的。例如:a=1,b=

2021-03-10 19:18:08 805

原创 11 怪数

问题描述 :寻找怪数:有一种奇怪的自然数,它的比其本身小的所有因子之和等于它本身,例如:6=1+2+3,其中1、2、3都是6的因子,编程找出整数N之内的所有怪数。输入说明 :输入一个整数N(10<=N≤10000),在行首和行尾没有多余的空格。输出说明 :输出N之内(<=N)的所有怪数,每一行输出一个整数。(注:若N中有3个怪数,你则需要输出三行,每行一个怪数。)所有数据前后没有多余的空格,中间也没有多余的空行。输入范例 :28输出范例 :628#incl.

2021-03-10 18:28:57 95

原创 10 星期几问题

问题描述 :根据一个范围在0至6的整数,用英文输出它对应的是星期几。(0对应Sunday,1对应Monday, 2对应Tuesday, 3对应Wednesday, 4对应Thursday, 5对应Friday, 6对应Saturday)输入说明 :输入一个整数n(0 ≤ n ≤ 6)。在行首和行尾没有多余的空格。输出说明 :输出一个字符串,即输入n对应的星期几的英文名称,请注意大小写。在行首和行尾不要输出多余的空格。输入范例 :0输出范例 :Sunday#incl.

2021-02-28 19:38:25 127

原创 9 门票价格计算

问题描述 :某旅游景点门票价格为每人5元。但团体可以优惠,分为以下情况:人数超过20,则所有人优惠10%;人数超过40,则所有人优惠15%;人数超过80,则所有人优惠20%;人数超过120,则所有人优惠30%。请跟据团体的人数,求出该团体的总门票价格。输入说明 :输入一个整数i(0≤i≤1,000),表示一个团体的总人数。在行首和行尾没有多余的空格。输出说明 :输出一个实数,即该团体需要支付的总票价,精确到小数点后2位。在行首和行尾不要输出多余的空格。输入范例 :

2021-02-28 19:18:01 336

原创 8 字母的前趋或后继

问题描述 :输入一个小写英文字母。如果这个字母是英文字母表的前13个字母中的一个(m字母及m以前的字母),则输出它的后一个字母;否则输出它的前一个字母。 比如输入a,则输出b,输入z,则输出y。输入说明 :输入一个小写字母,不需要考虑其它字符。在行首和行尾没有多余的空格。输出说明 :对应输入的小写字母,输出它对应的前趋或后继字母。行首和行尾不要输出多余的空格。输入范例 :a输出范例 :b#include <iostream>#include <std.

2021-02-28 18:52:55 174

原创 7.简单加减乘除

问题描述 :从键盘输入两个实数到变量a和b中,然后输入一个数字代表进行的运算,该数字为1则代表对a和b做加法,2代表减法,3代表乘法,4代表除法。如果输入1 3 4,表示进行1/3的操作,结果为0.333333。输出时,保留两位小数,因此输出0.33。注:可直接使用printf的控制格式实现保留两位小数的目的。输入说明 :输入两个实数,再输入一个1到4的整数,三个数字之间以空格分隔。输出说明 :输出计算结果,保留两位小数。如果做除法,但分母是0,则输出“error!”。输出时,行

2021-02-28 18:38:47 234 1

原创 6 逆序输出1到4位正整数

问题描述 :输入一个不多于4位的正整数,要求按逆序打印出各个位上的数字,例如原数为23,应输出32;如原数为8000,应输出0008;如原数为1,则输出1。应测试以下情况:输入的数为1位、2位、3位、4位正整数;此外,还应测试以下异常情况:输入负数或0,或输入的数超过4位。输入说明 :输入一个整数,可能为0,也可能为负数。输出说明 :输入1到4位的正整数时,输出该数的逆序,如果是其它整数,则输出“error!”。输出时,行首与行尾均无空格。输入范例 :8000输出范例 :0008

2021-02-28 17:23:03 147

原创 5 判断奇偶

问题描述 :从键盘输入一个整数,编程判断它的奇偶性。输入说明 :输入一个数字n输出说明 :输出n是奇数还是偶数。比如,输入数字5,则输出“5 is odd”;输入数字6,则输出“6 is even”输入范例 :5输出范例 :5 is odd#include <stdio.h>#include <stdlib.h>#include <math.h>//调用C语言封装好的函数 int main() { int n; wh

2021-02-23 21:29:49 448

原创 4 温度转换

问题描述 :从键盘输入一个摄氏温度,要求转换成华氏温度输出。摄氏温度转换为华氏温度的公式为(其中c表示摄氏温度,f表示华氏温度): f=(9/5)*c+32输入说明 :输入一个摄氏温度输出说明 :输出对应的华氏温度。注意,输出结果保留两位小数,小数点后第三位四舍五入到小数点后第二位,但小数点后总共输出6位(即最后需要输出4个0)。输入范例 :26.67输出范例 :80.010000#include <stdio.h>#include <stdlib.

2021-02-23 19:02:08 251

原创 3 大小写转换

问题描述 :从键盘输入一个大写字母,改用小写字母输出。输入说明 :一个大写英文字符输出说明 :对应的小写英文字符。输入范例 :A输出范例 :a#include <stdio.h>#include <stdlib.h>#include <math.h>//调用C语言封装好的函数 int main() { char ch; scanf("%c",&ch); ch=ch+32; printf("%c\n",ch

2021-02-23 18:27:28 139

原创 2 计算两点间的距离

问题描述 :输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。输入说明 :输入数据由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。输出说明 :输出结果,保留两位小数。输入范例 :3 4 -10 0输出范例 :13.60#include <stdio.h>#include <stdlib.h>#include <math.h>//调用C语言封装好的函数 int main() { doubl

2021-02-23 16:02:13 1477

原创 1 计算球体积

问题描述:根据输入的半径值,计算球的体积。球体积的计算公式为:4/3 * PI * r3其中PI的取值为:3.1415927输入说明 :输入数据为一个实数,表示球的半径,半径范围为[0,1000]。输出说明 :输出对应的球的体积,计算结果保留三位小数。不要输出多余空格。输入范例 :1.1输出范例 :5.575#include <stdio.h>#include <stdlib.h>/* run this program usin.

2021-02-23 15:29:42 606

原创 1002: 安全密码

题目描述网络上各类交易活动越来越普及,为了能够安安心心地上网,经常需要设置一个安全的密码。一般来说一个比较安全的密码至少应该满足下面两个条件:(1)密码长度大于等于8。(2)密码中的字符应该来自下面“字符类别”中四组中的至少三组。这四个字符类别分别为:(1)大写字母:A,B,C...Z;(2)小写字母:a,b,c...z;(3)数字:0,1,2...9;(4)特殊符号:~,!,@,#,$,%,^;给你一个密码,你的任务就是判断它是不是一个安全的密码。输入输入数据有多组,每组占一行

2021-02-08 17:44:38 404

原创 1000: 回文串问题

题目描述“回文串”是一个正读和反读都一样的字符串,字符串由数字和小写字母组成,比如“level”或者“abcdcba”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。输入输入包含多个测试实例,每一行对应一个字符串,串长最多100字母。输出对每个字符串,输出它是第几个,如第一个输出为"case1: ";如果一个字符串是回文串,则输出"yes",否则输出"no",在yes/no之前用一个空格。样例输入levelabcdenoonhaha样例输出case1

2021-02-08 15:50:54 230

原创 1001: 水仙花数

题目描述春天是鲜花灿烂的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。现在要求输出所有在m和n范围内的水仙花数。输入输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。输出对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,

2021-02-08 15:47:20 141

原创 独立任务最优调度(动态规划)

题目:用两台处理机A和B处理n个作业。设A和B处理第k个作业的时间分别为ak和bk。由于各个作业的特点和机器性能的关系,对某些作业,在A上的处理时间长;而对另一些作业,在B上的处理时间更长。一台处理机在某个时刻只能处理一个作业,而且作业处理是不可中断的,每个作业只能被处理一次。现在要找出一个最优调度方案,使得n个作业被这两台处理机处理完毕的时间和最少。算法思路:当完成k个作业时,设

2018-01-28 20:11:31 2447 6

原创 0--1背包问题(动态规划)

1、问题描述:     给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问:应如何选择装入背包的物品,使得装入背包中物品的总价值最大?例子:数据:物品个数n=5,物品重量w[n]={0,2,2,6,5,4},物品价值V[n]={0,6,3,5,4,6}下面是算法分析的过程:      其实这里就是选择装与不装的问题关键  (1)对于m[5][j],当j=

2018-01-24 18:06:54 1008 1

原创 流水作业调度(动态规划)

题目:   n个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi例如这个例子:所以最有时间就为:a4+a0+a2+a1+a3+[(b4+b0+b1+b2)-(a0+a1+a2+a3)]+b3     =1+2+3+4+6+[(7+5+2+3)-

2018-01-24 15:09:49 4180

原创 凸多边形最优三角剖分(动态规划)

题目描述:用多边形顶点的逆时针序列表示凸多边形,即P={v0,v1,…,vn-1}表示具有n条边的凸多边形。     给定凸多边形P,以及定义在由多边形的边和弦组成的三角形上的权函数w。要求确定该凸多边形的三角剖分,使得即该三角剖分中诸三角形上权之和为最小。解题思路:  若凸(n+1)边形P={v0,v1,…,vn-1}的最优三角剖分T包含三角形v0vkvn

2018-01-20 17:32:48 3027

原创 最大子矩阵问题(动态规划的推广)

问题描述:已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,找到最大的非空(大小至少是1 * 1)子矩阵。比如,如下4 * 4的矩阵0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2的最大子矩阵是9 2-4 1-1 8那么最大子矩阵的和就为:15算法思路就是:从大矩阵里找一个小矩阵,这个小矩阵的所有数之和最大;1,先从第一行开始扫描,然后再是1,2行,再1,2,3行,最后1

2018-01-19 14:59:27 353

原创 最大子段和问题(这里给出三种算法)

问题描述对于给定序列a1,a2,a3……an,寻找它的某个连续子段,使得其和最大。如( -2,11,-4,13,-5,-2 )最大子段是{ 11,-4,13 }其和为20。     (1)枚举法求解     枚举法思路如下:     以a[0]开始: {a[0]}, {a[0],a[1]},{a[0],a[1],a[2]}……{a[0],a[1],……a[n]}共n个     以a[1]开始: {

2018-01-18 20:36:34 932

原创 最长公共子序列

问题的描述:一个给定序列的子序列是在该序列中删去若干元素后得到的序列。若给定序列X= { x1, x2,…, xm},则另一序列Z= {z1, z2,…, zk}是X的子序列是指存在一个严格递增的下标序列 {i1, i2,…, ik},使得对于所有j=1,2,…,k有 Xij=Zj。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,

2018-01-17 22:48:10 207

原创 矩阵连乘(动态规划)

题目:例:设要计算矩阵连乘乘积A1A2A3A4A5A6,其中各矩阵的维数分别是:   A1          A2                    A3                A4          A5             A630*35;      35*15;     15*5;     5*10;     10*20;    20*25

2018-01-16 23:22:32 603

原创 整数因子分解

题目:大于1的正整数 n 都可以分解为 n = x1 * x2 * ... * xm例如:当n=12时,共有8种不同的分解式:12 = 1212 = 6*212 = 4*312 = 3*412 = 3*2*212 = 2*612 = 2*3*212 = 2*2*3对于给定正整数n,计算n共有多少种不同的分解式。#include using namespace

2018-01-15 23:15:19 279

原创 标准二表问题(Catalan实现)

问题描述:设n 是一个正整数。2xn的标准2维表是由正整数1,2,…,2n 组成的2xn 数组,该数组的每行从左到右递增,每列从上到下递增。2xn的标准2维表全体记为Tab(n)。算法:直接利用Catalan原理:令h(0)=1,h(1)=1,catalan数满足递推式:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-

2018-01-15 20:34:19 593

原创 双色汉诺塔

题目:设A、B、C是3 个塔座。开始时,在塔座A 上有一叠共n 个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,……,n,奇数号圆盘着蓝色,偶数号圆盘着红色,如图所示。现要求将塔座A 上的这一叠圆盘移到塔座B 上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则:规则(1):每次只能移动1 个圆盘;规则(2):任何时刻都不允许将较大的圆盘压在较小的圆盘之

2018-01-15 19:17:08 1021

原创 集合划分问题(2)

题目:n个元素的集合{1,2,..., n }可以划分为若干个非空子集。例如,当n=4 时,集合{1,2,3,4}可以划分为15 个不同的非空子集如下:{{1},{2},{3},{4}},{{1,2},{3},{4}},{{1,3},{2},{4}},{{1,4},{2},{3}},{{2,3},{1},{4}},{{2,4},{1},{3}},{{3,4},{

2018-01-15 16:52:46 1358

原创 集合划分(1)递归实现

题目:n个元素的集合{1,2,.,n }可以划分为若干个非空子集。例如,当n=4 时,集合{1,2,3,4}可以划分为15个不同的非空子集如下: {1},{2},{3},{4}}, {{1,2},{3},{4}}, {{1,3},{2},{4}}, {{1,4},{2},{3}}, {{2,3},{1},{4}}, {{2,4},{1},{3}}, {{3,4},{1},{2}

2018-01-15 16:12:39 614 1

原创 排列的字典序问题

问题描述:n个元素{1,2,,......,n}有n!个不同的排列。将这n!个排列按字典序排列,并编号为0,1,......,n!-1。每个排列的编号为其字典序值。例如,当n=3时,6个不同的排列的字典序值如下:例如:输入:82 6 4 5 8 1 7 3输出:82272 6 4 5 8 3 1 7代码我已经给出了详细的注释,注释就是思路了,所以在这里我

2018-01-14 22:46:44 515

原创 递归分治法实现有重复元素的排列问题

书上例题:1.问题描述        设集合R={r1,r2,...,rn}是要进行排列的n个元素,其中r1,r2,...,rn可能相同。 试着设计一个算法,列出R的所有不同排列。 即,给定n以及待排的n个可能重复的元素。计算输出n个元素的所有不同排列。2.算法设计        给定n及待排列的n个元素,计算出这n个元素的所有不同排列。3.数据输入        第1

2018-01-14 16:21:34 5203

原创 分治法实现半数单集问题

问题描述:给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下:    (1)set(n)中包含n;    (2)在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;    (3)按此规则进行处理,直至不能添加自然数为止。    例如,set(6)={6,16,26,126,36,136}。    编程任务:对于给定的自然数n,编程计算半数集set(n

2018-01-13 19:59:13 1707

原创 半数集问题

定义: 给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下:(1) 在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;(2)按此规则进行处理,直到不能再添加自然数为止。例题:以6为例,set(6)={6,16,26,36,126,136}.同法可得8的半数集set(8)={8,18,28,38,48,128,138,148,248,1248

2018-01-13 19:08:02 289

原创 分治法实现众数问题--例如:S={1,2,2,2,3,5},则多重集S的众数是2,其重数为3。对于给定的由m个自然数组成的多重集S,计算出S的众数及其重数。

题目的描述:例如:S={1,2,2,2,3,5},则多重集S的众数是2,其重数为3。对于给定的由m个自然数组成的多重集S,计算出S的众数及其重数。众数------一组元素中出现的次数是最多的重数-------这个数出现的总次数算法的分析:1.采用分治法:(1)先找到这一组的中位数,然后找到该数的左界限和右界限(2)上面那一

2018-01-13 14:23:04 3353

原创 分治法实现循环日程

设有n=2^k个运动员要进行网球循环赛。现要设计一个满足以下要求的比赛日程表:          (1)每个选手必须与其他n-1个选手各赛一次;     (2)每个选手一天只能参赛一次;     (3)循环赛在n-1天内结束。以书上例题为例:下面给出解决思路 (1)for(int i=1;i(2)将第一部分根据第一行来填充第二行 (3)将第二部分根据第一行和

2018-01-12 19:24:34 350

原创 利用分治算法实现合并排序的详细思路

//@1--将数组a先一分为2//@2--将数组两两进行判断并在数组a比较之后的最小元素放进d数组中//@3--当两组比较完后,进行条件判断//@4--当剩下的是左边时,则说明是右边的开始界限已经超出了范围,则进行循环将剩下的数组直接copy到d数组//@5--当剩下的是右边时,则说明是左边的开始界限已经超出了范围,则进行循环将剩下的数组直接copy到d数组上面是解释了Merg

2018-01-11 19:12:47 1328

原创 利用二分收索查找该数在该数组所在的位置,前提是要保证改数组是有序的

//2d3 二分搜索技术#include #includeusing namespace std;templateint BinarySearch(Type a[],const Type& x,int n){    int left = 0;///最左边,也就是最开始的时候    int right = n-1;///最右边的界限    while(left

2018-01-10 19:06:38 257

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除