![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++蓝桥杯试题
Allen_BCC
.....
展开
-
10进制转16进制
采用除k倒去余法;利用stl的栈 # include<iostream> # include<stack> using namespace std; int main() { stack<int> s; int N; int n; cin>>n; if(n==0) cout<<n; while(n) { N=n%16;...原创 2019-01-31 19:47:06 · 256 阅读 · 0 评论 -
矩阵加法
问题描述 给定两个N×M的矩阵,计算其和。其中: N和M大于等于1且小于等于100,矩阵元素的绝对值不超过1000。 输入格式 输入数据的第一行包含两个整数N、M,表示需要相加的两个矩阵的行数和列数。接下来2N行每行包含M个数,其中前N行表示第一个矩阵,后N行表示第二个矩阵。 输出格式 你的程序需要输出一个NM的矩阵,表示两个矩阵相加的结果。注意,输出中每行的最后不应有多余的空格,...原创 2019-02-11 14:13:50 · 2931 阅读 · 0 评论 -
前缀表达式
编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。输入格式为:“运算符 对象1 对象2”,其中,运算符为“+”(加法)、“-”(减法)、“*”(乘法)或“/”(除法),运算对象为不超过10的整数,它们之间用一个空格隔开。要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。 输入格式:输入只有一行,即一个前缀表达式字符串。 输出格式:输出相应的计算结果(如果是除法,直接...原创 2019-02-17 20:49:23 · 168 阅读 · 0 评论 -
蓝桥杯 二元函数
问题描述 令二元函数f(x,y)=ax+by,a和b为整数,求一个表达式S的值。 只有满足以下要求的表达式才是合法的: 1.任意整数x是一个合法的表达式; 2.如果A和B都是合法的表达式,则f(A,B)也是一个合法的表达式。 输入格式 第一行两个数a和b; 第二行一个字符串S表示要求的表达式。 输出格式 一行一个数表示表达式S的值。 样例输入 1 2 f(1,f(1,-...原创 2019-02-17 21:26:46 · 849 阅读 · 5 评论 -
2013蓝桥杯 b组 黄金连分数
黄金分割数0.61803… 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。 对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!! 言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。 比较简单的一种是用...原创 2019-02-27 18:40:09 · 411 阅读 · 0 评论 -
删除数组的零元素(或某一元素)
从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。输出删除后数组中元素的个数并依次输出数组元素。 样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数) 5 3 4 0 ...原创 2019-02-12 17:24:38 · 3258 阅读 · 1 评论 -
huffman思想
问题描述 Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。 2. 重复步骤1,直到{pi}中只剩下...原创 2019-02-12 19:50:42 · 192 阅读 · 0 评论 -
蓝桥杯回形取数
问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式 输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入 3 3 1 2 3 4 5 6 7...原创 2019-02-13 15:00:28 · 148 阅读 · 0 评论 -
高精度加法
问题描述 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。 定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。 计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即...原创 2019-02-13 19:38:01 · 105 阅读 · 0 评论 -
高斯日记
题目标题: 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯, 它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢? 高斯出生于:1777年4月30日。 在高斯发现的一个重要定理的日记上标注着:534...原创 2019-02-26 12:07:38 · 100 阅读 · 0 评论 -
扑克序列
标题:扑克序列 A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。 请填写出所有符合要求的排列中,字典序最小的那个。 例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。 # include<iostream> # include<...原创 2019-03-13 23:29:01 · 171 阅读 · 0 评论 -
李白打酒
标题:李白打酒 话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。 则:babaabbabbab...原创 2019-03-06 22:37:37 · 316 阅读 · 0 评论 -
矩阵的乘法
需注意的是矩阵的零次幂为单位矩阵; # include<iostream> using namespace std; const int maxsize=30; int main() { int a[maxsize][maxsize],b[maxsize][maxsize],c[maxsize][maxsize]; int n,m; cin>>n>>m; ...原创 2019-02-11 13:48:11 · 193 阅读 · 0 评论 -
fj字符串
FJ在沙盘上写了这样一些字符串: A1 = “A” A2 = “ABA” A3 = “ABACABA” A4 = “ABACABADABACABA” … … 你能找出其中的规律并写所有的数列AN吗? 输入格式 仅有一个数:N ≤ 26。 规律如下 A(n)=A(n-1)+char(64+n)+A(n-1)当n>1; 当n=1,A(1)=“A”; ...原创 2019-02-10 15:13:01 · 323 阅读 · 0 评论 -
16进制转10进制(使用stl)
# include&lt;iostream&gt; # include&lt;string&gt; using namespace std; long long exp(int n) { long long sum=1; for(int i=0;i&lt;n;i++ ) sum*=16; return sum; } int main() { string s; long long ...原创 2019-02-02 16:26:17 · 1280 阅读 · 0 评论 -
蓝桥杯 输出数组元素次数最多的元素
问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。 输入格式:第一行是一个整数N,N £ 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。 输出格式:输...原创 2019-02-14 20:33:36 · 324 阅读 · 0 评论 -
求1+2+3+...+n的值
本题可以使用循环,但如果n很大该怎么做呢? 可以使用等差数列公式Sn=na1+n(n-1)/2*d; 代码如下: # include<iostream> using namespace std; int main() { long long n; cin>>n; cout<<(n+n*(n-1)/2); return 0; } ...原创 2019-01-29 15:18:37 · 3230 阅读 · 0 评论 -
圆的面积
问题描述 给定圆的半径r,求圆的面积。 输入格式 输入包含一个整数r,表示圆的半径。 输出格式 输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。 刚看到这题感觉很简单,但其实也不简单,主要就是解决精度问题 # include<iostream> # include<iomanip> # include<cmath> using namespace...原创 2019-01-29 15:23:39 · 136 阅读 · 0 评论 -
Fibonacci
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 刚拿到此题,马上就想到了递归公式,但提交的时候,系统提示运行超时; # include<iostream> const int mod=10007; int fibonaqie(int n) { if(n==1||n==2)...原创 2019-01-29 15:35:00 · 275 阅读 · 0 评论 -
字母图形之绝对值函数
问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。 输入格式 输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。 输出格式 输出n行,每个m个字符,为你的图形。 样例输入 5 7 样例输出 ABCDEFG BABCDE...原创 2019-01-29 18:38:12 · 257 阅读 · 0 评论 -
高精度阶乘
问题描述 输入一个正整数n,输出n!的值。 其中n!=123*…*n。 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。...原创 2019-02-07 13:30:10 · 766 阅读 · 0 评论 -
蓝桥杯 复数的基本运算
编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数。 (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。 (3)必须使用结构体指针的方法把函数的计算结果返回。 说明:用户输入:运算符号(+,-,*,/) a b c d. 输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。 # ...原创 2019-02-15 17:13:34 · 719 阅读 · 0 评论 -
四位回文数
问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。 输出格式 按从小到大的顺序输出满足条件的四位十进制数。 # include<iostream> using namespace std; void panduan(int i) { int m,n,k,s; m=i/1000; n=(i-m*1000)/100; k=(i...原创 2019-01-30 15:10:45 · 2800 阅读 · 0 评论 -
质因数
# include&lt;iostream&gt; # include&lt;cmath&gt; using namespace std; void zys(int n) { cout&lt;&lt;n&lt;&lt;"="; int k=sqrt(n); int i=2; while( i&lt;=k)原创 2019-02-09 17:35:37 · 284 阅读 · 0 评论 -
算法训练 最大最小公倍数
/* 问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。 输入格式 输入一个正整数N。 输出格式 输出一个整数,表示你找到的最小公倍数。 样例输入 9 样例输出 504 数据规模与约定 1 <= N <= 106。*/ //思路1枚举 (不推荐) 思路2 找出3个最大且互质的数。 // 如何去找3个最大且互质的数 //若n为奇数,则n, (n-1)...原创 2019-03-30 13:11:12 · 138 阅读 · 0 评论