蓝桥杯2016年C/C++ 混搭
1、报纸页数
X星球日报和我们地球的城市早报是一样的,
都是一些单独的纸张叠在一起而已。每张纸印有4版。
比如,某张报纸包含的4页是:5,6,11,12,
可以确定它应该是最上边的第2张报纸。
我们在太空中捡到了一张X星球的报纸,4个页码分别是:
1125,1126,1727,1728
请你计算这份报纸一共多少页(也就是最大页码,并不是用了几张纸哦)?
请填写表示总页数的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
手算题,不难发现这样一个规律,四个页码中最小的那个数减一就是从开始到这一页的页数,书的结构是对称的,所以总页数就是最小页数减一与最大页数之和,即1125-1+1728
2852
2、网友年龄
某君新认识一网友。
当问及年龄时,他的网友说:
“我的年龄是个2位数,我比儿子大27岁,
如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄”
请你计算:网友的年龄一共有多少种可能情况?
提示:30岁就是其中一种可能哦.
请填写表示可能情况的种数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
暴力即可,答案7
#include<bits/stdc++.h>
using namespace std;
int main()
{int cnt=0;for(int i=10;i<100;i++){int a=i%10;int b=i/10;int c=a*10+b;if(i-c==27) cnt++;}cout<<cnt<<endl;return 0;
}
3、历史上有许多计算圆周率pai的公式,其中,格雷戈里和莱布尼茨发现了下面的公式:
pai = 4*(1-1/3+1/5-1/7 …)
参见【图1.png】
这个公式简单而优美,但美中不足,它收敛的太慢了。
如果我们四舍五入保留它的两位小数,那么:
累积了1项和是:4.00
累积了2项和是:2.67
累积了3项和是:3.47
。。。
请你写出它累积了100项的和是多少(四舍五入到小数后两位)。
注意:只填写该小数本身,不要填写任何多余的说明或解释文字。
很基础的求和,C语言的入门题,答案3.13
#include<bits/stdc++.h>
using namespace std;
int main()
{double ans=0;int flag=1;for(int i=0;i<100;i++){ans+=flag*(4.0/(2*i+1));flag*=-1;}cout<<ans<<endl;return 0;
}
4、平方怪圈
如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。
对新产生的正整数再做同样的处理。
如此一来,你会发现,不管开始取的是什么数字,
最终如果不是落入1,就是落入同一个循环圈。
请写出这个循环圈中最大的那个数字。
请填写该最大数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
死循环就好了,由于是在一个循环圈里循环,停止的条件不好控制,所以直接在循环里找就好了,答案145
#include<bits/stdc++.h>
using namespace std;
int main()
{int n,temp;cin>>n;temp=n;while(1){int cnt=0;while(temp>0){int a;a=temp%10;cnt+=a*a;temp/=10;}cout<<cnt<<endl;temp=cnt;}return 0;
}
5、搭积木
小明最近喜欢搭数字积木,
一共有10块积木,每个积木上有一个数字,0~9。
搭积木规则:
每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。
最后搭成4层的金字塔形,必须用完所有的积木。
下面是两种合格的搭法:
0
1 2
3 4 5
6 7 8 9
0
3 1
7 5 2
9 8 6 4
请你计算这样的搭法一共有多少种?
请填表示总数目的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
十个数不是很大,所以可以直接用C函数库里的全排列函数暴力,答案768
#include<bits/stdc++.h>
using namespace std;
int main()
{int ans=0;int num[10]={0,1,2,3,4,5,6,7,8,9};do{//if(num[0]<num[1]&&num[0]<num[2]&&num[1]<num[3]&&num[1]<num[4]&&num[2]<num[4]&&num[2]<num[5]&&num[3]<num[6]&&num[3]<num[7]&&num[4]<num[7]&&num[4]<num[8]&&num[5]<num[8]&&num[5]<num[9])if(num[0]>num[1]||num[0]>num[2]) continue;if(num[1]>num[3]||num[1]>num[4]) continue;if(num[2]>num[4]||num[2]>num[5]) continue;if(num[3]>num[6]||num[3]>num[7]) continue;if(num[4]>num[7]||num[4]>num[8]) continue;if(num[5]>num[8]||num[5]>num[9]) continue;ans++;}while(next_permutation(num,num+10));cout<<ans<<endl;return 0;
}
6、寒假作业
现在小学的数学题目也不是那么好玩的。
看看这个寒假作业:
□ + □ = □
□ - □ = □
□ × □ = □
□ ÷ □ = □
(如果显示不出来,可以参见【图1.jpg】)
每个方块代表1~13中的某一个数字,但不能重复。
比如:
6 + 7 = 13
9 - 8 = 1
3 * 4 = 12
10 / 2 = 5
以及:
7 + 6 = 13
9 - 8 = 1
3 * 4 = 12
10 / 2 = 5
就算两种解法。(加法,乘法交换律后算不同的方案)
你一共找到了多少种方案?
请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
像这种数字填空的题目,下意识想用全排列函数省事,但是这道题用这种方法需要运行好长时间,所以节省时间的话可以用搜索的办法,答案64
全排列方法:
#include<bits/stdc++.h>
using namespace std;int num[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int main()
{int ans=0;do{if(num[0]+num[1]!=num[2]) continue;if(num[3]-num[4]!=num[5]) continue;if(num[6]*num[7]!=num[8]) continue;if(num[9]!=num[10]*num[11]) continue;ans++;}while(next_permutation(num,num+13));cout<<ans<<endl;return 0;
}
DFS方法
#include<bits/stdc++.h>
using namespace std;
int res=0;
int a[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
void dfs(int s)
{if(s>=3)if(a[0]+a[1]!=a[2]) return ;if(s>=6)if(a[3]-a[4]!=a[5]) return ;if(s>=9)if(a[6]*a[7]!=a[8]) return ;if(s>=12)if(a[11]*a[10]==a[9]){res++;return;} for(int i=s;i<=12;i++){ swap(a[i],a[s]);dfs(s+1);swap(a[s],a[i]);}
}
int main()
{dfs(0);cout<<res<<endl;return 0;
}
7、冰雹数
任意给定一个正整数N,
如果是偶数,执行: N / 2
如果是奇数,执行: N * 3 + 1
生成的新的数字再执行同样的动作,循环往复。
通过观察发现,这个数字会一会儿上升到很高,
一会儿又降落下来。
就这样起起落落的,但最终必会落到“1”
这有点像小冰雹粒子在冰雹云中翻滚增长的样子。
比如N=9
9,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1
可以看到,N=9的时候,这个“小冰雹”最高冲到了52这个高度。
输入格式:
一个正整数N(N<1000000)
输出格式:
一个正整数,表示不大于N的数字,经过冰雹数变换过程中,最高冲到了多少。
例如,输入:
10
程序应该输出:
52
再例如,输入:
100
程序应该输出:
9232
资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。
暴力的一道题,不清楚坑在哪里,对了50%
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{int n,max=-1;cin>>n;for(int i=1;i<n;i++){int temp=i;while(temp!=1){if(temp%2==1) temp=temp*3+1;else temp=temp/2;if(temp>max) max=temp;}}cout<<max<<endl;return 0;
}
8、密码脱落
X星球的考古学家发现了一批古代留下来的密码。
这些密码是由A、B、C、D 四种植物的种子串成的序列。
仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。
由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。
你的任务是:
给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。
输入一行,表示现在看到的密码串(长度不大于1000)
要求输出一个正整数,表示至少脱落了多少个种子。
例如,输入:
ABCBA
则程序应该输出:
0
再例如,输入:
ABDCDCBABC
则程序应该输出:
3
资源约定:
峰值内存消耗 < 256M
CPU消耗 < 3000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{string str;int cnt=0,l,r;cin>>str;l=0;r=str.length()-1;while(l<r){if(str[l]==str[r]){l++;r--;}else {cnt++;r--;}}cout<<cnt<<endl;return 0;
}
蓝桥杯2016年C/C++ 混搭相关推荐
- 第七届蓝桥杯 2016年省赛真题(Java 大学C组)
蓝桥杯 2016年省赛真题(Java 大学C组) 第一题:有奖猜谜 第二题:煤球数目 第三题:平方怪圈 第四题:骰子游戏 第五题:分小组 第六题:凑算式 第七题:搭积木 第八题:冰雹数 第九题:四平方 ...
- 蓝桥杯2016初赛python题解
前言:除特殊说明外题解均可AC 蓝桥杯2016初赛 [蓝桥杯2016初赛]网友年龄 [蓝桥杯2016初赛]生日蜡烛 [蓝桥杯2016初赛]方格填数 [蓝桥杯2016初赛]寒假作业 [蓝桥杯2016初赛 ...
- 蓝桥杯2016年C语言B组-交换瓶子
蓝桥杯2016年C语言B组 交换瓶子 代码 交换瓶子 有N个瓶子,编号 1 ~ N,放在架子上. 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置. 经过若干次后,使得瓶子的 ...
- 蓝桥杯取球博弈c语言算法,1298: [蓝桥杯2016初赛]取球博弈 (博弈)
1298: [蓝桥杯2016初赛]取球博弈 (博弈) 1298: [蓝桥杯2016初赛]取球博弈 (博弈) #include #include #include #include #include # ...
- [蓝桥杯2016初赛]方格填数-next_permutation
代码如下: #include <iostream> #include <algorithm> using namespace std;int main() {int a[10] ...
- 蓝桥杯2016第七届C语言B组省赛习题题解——习题B.生日蜡烛
每日刷题(十一) 蓝桥杯第七届C语言B组省赛习题 习题B:生日蜡烛 我们可以立刻想到等差数列求和,那就是Sn = (n0 + n)* (n - n0 + 1)/ 2 Sn = 236,很明显这里有两个 ...
- [蓝桥杯]2016蓝桥省赛B组题目及详解
/*----------------------------------------------------------- [结果填空题]T1 (分值:3) 题目:煤球数目有一堆煤球,堆成三角棱锥形. ...
- [蓝桥杯2016初赛]卡片换位 bfs+set
你玩过华容道的游戏吗?这是个类似的,但更简单的游戏.看下面 3 x 2 的格子 +---+---+---+ | A | * | * | +---+---+---+ | B | | * | +---+- ...
- 蓝桥杯2016省赛真题-剪邮票(dfs)
如[图1.jpg], 有12张连在一起的12生肖的邮票. 现在你要从中剪下5张来,要求必须是连着的. (仅仅连接一个角不算相连) 比如,[图2.jpg],[图3.jpg]中,粉红色所示部分就是合格的剪 ...
最新文章
- Linux脚本让我选择文件,linux – 用于选择文件和打印文件大小的Awk脚本
- iptables 防火墙的基本使用
- node.js 和 HTML5-Canvas 结合实现截图上传交互
- 深度学习目标检测之 YOLO v2
- 关于计算机游戏的英语读法,关于电脑游戏的英语作文
- cbitmap 从内存中加载jpg_Pytorch数据加载的分析
- Debian For ARM Webmin Server
- java static int count,static int bitCount(long i)
- Ajax爬取今日头条街拍美女
- 骑士人才linux伪静态,骑士CMS人才系统伪静态的设置方法
- 【干货分享】嫁给爱情字体设计创意
- VTN系列多通道采集仪硬件接口
- 阿里云云解析DNS怎么样?云解析DNS有什么优势?
- 如何创建一个facebook账户
- 华为、华三交换机查看光模块收发光及光模块信息
- CC26x2R1笔记(8)CCS9.2 cc26xx环境的搭建
- 一种 Python 获取时间序列数据集的方式
- latex 公式换行_如何在微信公众号中!编辑出漂亮的数学公式?
- ElasticSearch 中的中文分词器以及索引基本操作详解
- 【最新版】宝塔面板7.9.3企业版 开心破解版一键脚本