C++
文章平均质量分 54
一流小风一
凛冬将至!
展开
-
C++之OPJ-3
1017:装箱问题查看提交统计提示提问总时间限制: 1000ms内存限制: 65536kB描述一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6。这些产品通常使用一个 6*6*h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包原创 2014-11-03 15:33:24 · 482 阅读 · 0 评论 -
C++之练习题41
1.把 M 个同样的苹果放在N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K 表示)注意:5,1,1 和1,5,1 是同一种分法。输入数据第一行是测试数据的数目t(0 空格分开。1输出要求对输入的每组数据M 和N,用一行输出相应的K。输入样例17 3输出样例8转载 2014-08-30 15:45:02 · 828 阅读 · 0 评论 -
C++之练习题39
1.给定两个正整数a 和b。可以知道一定存在整数x,使得 x转载 2014-08-17 16:35:01 · 994 阅读 · 0 评论 -
C++之练习题37
1.有一个由按钮组成的矩阵,其中每行有6 个按钮,共5 行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3 盏灯的状态;在矩阵边上的按钮改变4 盏灯的状态;其他的按钮改变5 盏灯的状态。在下图8-1 中,左边矩阵中用X 标记的按钮表示被按下,右边转载 2014-08-14 17:24:03 · 499 阅读 · 0 评论 -
C++之练习题38
1.在韩国,有一种小的青蛙。每到晚上,这种青蛙会跳越稻田,从而踩踏稻子。农民在早上看到被踩踏的稻子,希望找到造成最大损害的那只青蛙经过的路径。每只青蛙总是沿着一条直线跳越稻田,而且每次跳跃的距离都相同。 稻田里的稻子组成一个栅格,每棵稻子位于一个格点上,而青蛙总是从稻田的一侧跳进稻田,然后沿着某条直线穿越稻田,从另一侧跳出去转载 2014-08-16 16:27:57 · 669 阅读 · 0 评论 -
C++之练习题36
1.人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为 23 天、28 天和33 天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们想知道何时三个高峰落在同一天。158对于每个周期,我们会给出从当前年份的第一天开始,到出现高峰的转载 2014-08-12 15:36:10 · 474 阅读 · 0 评论 -
C++之练习题35
1.求2 个不超过100 位的浮点数相加的和转载 2014-08-11 16:57:12 · 428 阅读 · 0 评论 -
C++之练习题34
1.形如 2p-1 的素数称为麦森数,这时P 一定也是个素数。但反过来不一定,即如果P 是个素数。2p-1 不一定也是素数。到1998 年底,人们已找到了37 个麦森数。最大的一个是P=3021377,它有909526 位。麦森数有许多重要应用,它与完全数密切相关。你的任务:输入P (1000精度数表示)输入数据只包含一个整数 P(1000输出要求第 1 行:十进制高精转载 2014-08-08 17:20:38 · 681 阅读 · 0 评论 -
C++之练习题33
1.n 位的一个整数是循环数(cyclic)的条件是:当用一个 1 到 n 之间的整数去乘它时,会得到一个将原来的数首尾相接循环移动若干数字再在某处断开而得到的数字。也就是说,如果把原来的数字和新的数字都首尾相接,他们得到的环是相同的。只是两个数的起始数字不一定相同。例如,数字 142857 是循环数,因为:142857 *1 = 142857142857 *2 = 2857141转载 2014-08-07 15:41:13 · 956 阅读 · 0 评论 -
C++之练习题26
1.一种细菌的繁殖速度是每天成倍增长。例如:第一天有10 个,第二天就变成20 个,第三天变成40 个,第四天变成80 个,……。现在给出第一天的日期和细菌数目,要你写程序求出到某一天的时候,细菌的数目。输入数据第一行有一个整数n,表示测试数据的数目。其后n 行每行有5 个整数,整数之间用一个空格隔开。第一个数表示第一天的月份,第二个数表示第一天的日期,第三个数表示第一天细菌的数目,第四个转载 2014-07-31 17:27:56 · 811 阅读 · 0 评论 -
C++之练习题32
1.数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根。如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于24 来说,把2 和4 相加得到6,由于6 是一位数,因此6 是24 的数根。再比如39,把3 和9 加起来得到12,由于12 不是一位数,因此还得把1 和2 加起来,最后得到3,这转载 2014-08-06 16:23:16 · 971 阅读 · 0 评论 -
C++之练习题25
1.一个字符串的前缀是从该字符串的第一个字符起始的一个子串。例如 "carbon"的字串是:"c", "ca", "car", "carb", "carbo", 和 "carbon"。注意,这里我们不认为空串是字串, 但是每个非空串是它自身的字串。我们希望能用前缀来缩略的表示单词。例如, "carbohydrate"通常用"carb"来缩略表示。在下面的例子中,"carbohydrate" 能被缩转载 2014-07-31 14:52:07 · 1147 阅读 · 0 评论 -
C++之练习题31
1.大家知道,给出正整数n,则1 到n 这n 个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3 时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 1六个排列。给出某个排列,求出这个排列的下k 个排列,如果遇到最后一个排列,则下1 排列为第1 个排列,即排列1 2 3…n。比如:n = 3,k=2 给出排列2 3 1,则它的下1转载 2014-08-04 17:03:30 · 602 阅读 · 0 评论 -
C++之练习题40
1.有9 个时钟,排成一个3*3 的矩阵,各时钟指针的起始位置可以是12 点、3 点、6 点、9 点,如图8-9 所示。共允许有9 种不同的移动。如图8-10 所示,每个移动会将若干个时钟的指针沿顺时针方向拨动90 度。给定这9 个时钟指针的其始位置,请计算最少需要用最少个移动才能将9 个时钟的指针都拨到12 点的位置,并输出你采用的移动序列。转载 2014-08-18 16:32:05 · 406 阅读 · 0 评论 -
C++之练习题43
1.建一棵二叉树转载 2014-10-06 13:54:44 · 370 阅读 · 0 评论 -
C++之OPJ-4
1035:拼写检查总时间限制: 2000ms内存限制: 65536kB描述现在有一些英语单词需要做拼写检查,你的工具是一本词典。需要检查的单词,有的是词典中的单词,有的与词典中的单词相似,你的任务是发现这两种情况。单词A与单词B相似的情况有三种:1、删除单词A的一个字母后得到单词B;2、用任意一个字母替换单词A的一个字母后得到单词B;3、在单词A的任意位原创 2014-11-09 16:00:21 · 677 阅读 · 0 评论 -
C++之OPJ-5
1061:青蛙的约会总时间限制: 1000ms内存限制: 65536kB描述两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除原创 2014-11-18 16:40:15 · 435 阅读 · 0 评论 -
C++算法:广度优先搜索大数
//求一个数m它的各个数位只由0或1构成,并且能被输入的整数n整除```广度优先搜索大数应用#include#includeusing namespace std;struct node{ int a, b; //a保存0,1,b保存余数 int pre; //前一个节点}queue[200];void output(int k){ if (queue[k].pre转载 2015-02-14 23:05:06 · 580 阅读 · 0 评论 -
C++算法:符号数运算
//带符号数据运算#include#includeusing namespace std;int main(){ char s[10000][30], t[30]; long a, sum; int i, j, k, m, n; cin >> n; while (1) { sum = 0; getchar();转载 2015-02-14 21:53:20 · 756 阅读 · 0 评论 -
C++算法:高精度计算
比较:#include#includeusing namespace std;char c[2000];char arr[1000];long z = 0;int Judge(char ch[]){ int i, k; k = strlen(ch); for (i = 0; i < k; i++) if (ch[i] != '0') return转载 2015-02-07 22:06:52 · 826 阅读 · 0 评论 -
C++之POJ9
1.一个正整数n,把n!=1x2x3x.....xn分解成素因子相乘的形式,并从小到大输出每个素因子的指数,但要保证最后输出的素因子个数不为0。例如825应表示为0,1,2,0,1表示分别有0,1,2,0,1个2,3,5,7,11。 输入 第一行有一个整数n(0测试数据; 接下来n行每行有一个整数 m(1 输出 从小到大输出m分解成素因子相乘后各个素因子对应的指数转载 2015-01-05 16:35:57 · 363 阅读 · 0 评论 -
C++之POJ8
1091:跳蚤总时间限制: 5000ms内存限制: 65536kB描述Z城市居住着很多只跳蚤。在Z城市周六生活频道有一个娱乐节目。一只跳蚤将被请上一个高空钢丝的正中央。钢丝很长,可以看作是无限长。节目主持人会给该跳蚤发一张卡片。卡片上写有N+1个自然数。其中最后一个是M,而前N个数都不超过M,卡片上允许有相同的数字。跳蚤每次可以从卡片上任意选择一个自然数S,然后向左,或向右跳S个单位长转载 2014-12-08 15:01:28 · 589 阅读 · 0 评论 -
C++之POJ7
1088:滑雪总时间限制: 1000ms内存限制: 65536kB描述Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 1转载 2014-11-28 10:51:42 · 385 阅读 · 0 评论 -
C++之POJ-6
1062:昂贵的聘礼总时间限制: 1000ms内存限制: 65536kB描述年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:"嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币。如果你能够弄来他的水晶球,那么只要5000金币就行了。"探险转载 2014-11-24 10:58:40 · 411 阅读 · 0 评论 -
C++之OPJ-2
1007:DNA排序总时间限制: 1000ms内存限制: 65536kB描述现在有一些长度相等的DNA串(只由ACGT四个字母组成),请将它们按照逆序对的数量多少排序。逆序对指的是字符串A中的两个字符A[i]、A[j],具有i A[j] 的性质。如字符串”ATCG“中,T和C是一个逆序对,T和G是另一个逆序对,这个字符串的逆序对数为2。输入第1行:两个整数转载 2014-10-19 23:13:12 · 557 阅读 · 0 评论 -
C++之OPJ-1
1007:DNA排序1007:DNA排序总时间限制: 1000ms内存限制: 65536kB描述现在有一些长度相等的DNA串(只由ACGT四个字母组成),请将它们按照逆序对的数量多少排序。逆序对指的是字符串A中的两个字符A[i]、A[j],具有i A[j] 的性质。如字符串”ATCG“中,T和C是一个逆序对,T和G是另一个逆序对,这个字符串的逆序对数为2。转载 2014-10-19 23:12:09 · 648 阅读 · 0 评论 -
C++之练习题42
1.在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选n 个人作为陪审团的候选人,然后再从这n 个人中选m 人组成陪审团。选m 人的办法是:控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分值从0 到20。为了公平起见,法官选出陪审团的原则是:选出的m 个人,必须满足辩方总分和控方总分的差的绝对值最小。如果有多种选择方案的辩方总转载 2014-10-03 17:10:47 · 369 阅读 · 0 评论 -
C++之练习题24
1.每加密一条消息,需要三个整数码, k1、k2 和k3。字母[a-i] 组成一组,[j-r] 组成第二组, 其它所有字母 ([s-z] 和下划线)组成第三组。在消息中属于每组的字母将被循环地向左移动ki 个位置。每组中的字母只在自己组中的字母构成的串中移动。解密时,每组中的字母在自己所在的组中循环地向右移动ki 个位置。例如, 对于the_quick_brown_fox,ki 的值分别取2、转载 2014-07-29 16:06:40 · 648 阅读 · 0 评论 -
C++之练习题30
1.你的一个朋友买了一台电脑。他以前只用过计算器,因为电脑的显示器上显示的数字的样子和计算器是不一样,所以当他使用电脑的时候会比较郁闷。为了帮助他,你决定写一个程序把在电脑上的数字显示得像计算器上一样。输入数据输入包括若干行,每行表示一个要显示的数。每行有两个整数s 和n (1 输出要求显示的方式是:用 s 个'-'表示一个水平线段,用s 个'|'表示一个垂直线段。这种情况下,每一转载 2014-08-03 16:17:50 · 652 阅读 · 0 评论 -
C++之练习题23
1.给定两个由大小写字母和空格组成的字符串s1 和s2,它们的长度都不超过100 个字符、也可以长度为0。判断压缩掉空格、并忽略大小写后,这两个字符串在是否相等。转载 2014-07-28 18:23:26 · 3066 阅读 · 0 评论 -
C++之练习题13
1.Alex 喜欢填词游戏。填词游戏是一个非常简单的游戏。填词游戏包括一个N * M 大小的矩形方格盘和P 个单词。然后需要把每个方格中填上一个字母使得每个单词都能在方格盘上被找到。每个单词都能被找到要满足下面的条件:每个方格都不能同时属于超过一个的单词。一个长为k 的单词一定要占据k 个方格。单词在方格盘中出现的方向只能是竖直的或者水平的(可以由竖直转向水平,反之亦然)。你的转载 2014-07-20 15:27:16 · 588 阅读 · 0 评论 -
C++之练习题12
1.问题描述一个笼子里面关了鸡和兔子(鸡有2 只脚,兔子有4 只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物输入数据第1 行是测试数据的组数n,后面跟着n 行输入。每组测试数据占1 行,包括一个正整数a (a 输出要求n 行,每行输出对应一个输入。输出是两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用转载 2014-07-20 15:15:18 · 849 阅读 · 0 评论 -
C++之俄罗斯方块
#pragma once#include "afxwin.h"#include "Resource.h"const int BLOCK_LINE = 20; //当前地图的行数const int BLOCK_ROW = 10; //当前地图的列数class CBlock{public: CBlock(void); ~CBlock(void);//转载 2014-04-27 10:25:43 · 783 阅读 · 0 评论 -
C++之练习题9
"Help Jimmy" 是在下图所示的场景上完成的游戏:场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。Jimmy每次下落的高度不能超过MAX米,转载 2014-05-16 14:24:50 · 431 阅读 · 0 评论 -
C++之练习题8
给出两个字符串,求出这样的一个最长的公共子序列的长度最长的公共子序列:子序列中的每个字符都能在两个原串中找到,而且每个字符的先后顺序和原串中的先后顺序一致。转载 2014-05-09 15:18:47 · 442 阅读 · 0 评论 -
C++之练习题7
有一个3*3的棋盘,其中有0-8共9个数字,0表示空格,其他的数字可以和0交换位置。求由初始状态到达目标状态1 2 34 5 6 8 2 31 2 37 8 0的步数最少的解?转载 2014-05-04 12:57:15 · 608 阅读 · 0 评论 -
C++之练习题6
汉诺塔问题以C柱为中转,将盘从A柱移动到B柱上,一次只能移动一个盘,而且大盘不能压在小盘上面转载 2014-04-30 14:41:20 · 497 阅读 · 0 评论 -
C++之练习题5
5.有一个由按钮组成的矩阵,其中每 行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位 置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭; 如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3盏灯的状态在矩阵边上的按钮改变4盏灯的状态其他的按钮改变5盏灯的状态转载 2014-04-30 14:25:42 · 641 阅读 · 0 评论 -
C++之练习题4
4.赛利有12枚银币。其中有11枚真币和1枚假币。假币看起来和真币没有区别,但是重量不同。 但赛利不知道假币比真币轻还是重。于是他向 朋友借了一架天平。朋友希望赛利称三次就能找出假币并且确定假币是轻是重。例如:如果赛利用天平称两枚硬币,发现天平平衡,说明两 枚都是真的。如果赛利用一枚真币与另一枚银 币比较,发现它比真币轻或重,说明它是假 币。经过精心安排每次的称量,赛利保证在称 三次后确定假币。转载 2014-04-30 14:11:04 · 609 阅读 · 0 评论 -
C++之练习题2
已知:有6*6 的大箱子和1*1,2*2,3*3,4*4, 5*5,6*6 的木块,箱子高度和木块一样问:给定各种木块的数目,求最少需要多少个大箱 子来装?例如:输入:0 0 4 0 0 1 -〉输出2输入:7 5 1 0 0 0 -〉输出1转载 2014-04-30 13:55:52 · 556 阅读 · 0 评论