博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝桥杯练习(二)
阅读量:3899 次
发布时间:2019-05-23

本文共 6147 字,大约阅读时间需要 20 分钟。

蓝桥杯练习(二)

阶乘计算

问题描述

  输入一个正整数n,输出n!的值。
输入格式
  输入包含一个正整数n,n<=1000。
加粗样式输出格式
  输出n!的准确值。

#include
using namespace std;const int maxn = 1e4;int a[maxn]={
1};int main(){
int n,d,t=1; scanf("%d",&n); for(int i=2;i<=n;++i){
d=0; for(int j=0;j
=0;--i)printf("%d",a[i]);}

高精度加法

输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。

#include
using namespace std;const int maxn = 1e2+1;int a[maxn]={
0};int b[maxn]={
0};void transfer(string &s,int c[]){
int t=0; for(int i=s.size()-1;i>=0;--i){
c[t++]=s[i]-'0'; }}int main(){
string s; cin>>s; transfer(s,a); cin>>s; transfer(s,b); int d=0; for(int i=0;i
9){
a[i]-=10; d=1; }else d=0; } for(int i=maxn-1;i>0;--i){
if(a[i]!=0){
for(int t=i;t>=0;--t){
cout<

Huffuman树

问题描述

  Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。
  给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下:
  1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi} 中。这个过程的费用记为pa + pb。
  2. 重复步骤1,直到{pi}中只剩下一个数。
  在上面的操作过程中,把所有的费用相加,就得到了构造Huffman树的总费用。
  本题任务:对于给定的一个数列,现在请你求出用该数列构造Huffman树的总费用。
输入格式
  输入的第一行包含一个正整数n(n<=100)。
  接下来是n个正整数,表示p0, p1, …, pn-1,每个数不超过1000。

#include
using namespace std;int main(){
priority_queue
,greater
> q; int n,d; scanf("%d",&n); for(int i=0;i
1){
d = q.top();q.pop(); d+=q.top();q.pop(); sum+=d; //printf("%d ",d); q.push(d); } printf("%d",sum);}

2n皇后问题

问题描述

  给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。
输入格式
  输入的第一行为一个整数n,表示棋盘的大小。
  接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇后。

#include
using namespace std;const int maxn = 10;int g[maxn][maxn];// 1 可以放,0 不可以放 2,黑,3 白int n,ans;int row1[maxn];int row2[maxn];bool check(int t,int col,int row[]){
for(int i=0;i

报时助手

问题描述

  给定当前的时间,请用英文的读法将它读出来。
  时间用时h和分m表示,在英文的读法中,读一个时间的方法是:
  如果m为0,则将时读出来,然后加上“o’clock”,如3:00读作“three o’clock”。
  如果m不为0,则将时读出来,然后将分读出来,如5:30读作“five thirty”。
  时和分的读法使用的是英文数字的读法,其中0~20读作:
  0:zero, 1: one, 2:two, 3:three, 4:four, 5:five, 6:six, 7:seven, 8:eight, 9:nine, 10:ten, 11:eleven, 12:twelve, 13:thirteen, 14:fourteen, 15:fifteen, 16:sixteen, 17:seventeen, 18:eighteen, 19:nineteen, 20:twenty。
  30读作thirty,40读作forty,50读作fifty。
  对于大于20小于60的数字,首先读整十的数,然后再加上个位数。如31首先读30再加1的读法,读作“thirty one”。
  按上面的规则21:54读作“twenty one fifty four”,9:07读作“nine seven”,0:15读作“zero fifteen”。
输入格式
  输入包含两个非负整数h和m,表示时间的时和分。非零的数字前没有前导0。h小于24,m小于60。

#include
using namespace std;string msg[] ={
"zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen","twenty"};int main(){
int h,m; cin>>h>>m; if(h<21)cout<

回形取数

问题描述

  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。
输入格式
  输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。

#include
using namespace std;const int MAXN = 202;int a[MAXN][MAXN];int n,m;int main(){
scanf("%d%d",&n,&m); for(int i=0;i
ans; while(l<=r&&t<=d){
for(int i=t;i<=d;++i)ans.push_back(a[i][l]); l++; if(ans.size()==n*m)break; for(int i=l;i<=r;++i)ans.push_back(a[d][i]); d--; if(ans.size()==n*m)break; for(int i=d;i>=t;--i)ans.push_back(a[i][r]); r--; if(ans.size()==n*m)break; for(int i=r;i>=l;--i)ans.push_back(a[t][i]); t++; if(ans.size()==n*m)break; } for(int i=0;i

龟兔赛跑预测

问题描述

  话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致——它们不到终点决不停止。
  然而有些比赛相当漫长,全程观看会耗费大量时间,而小华发现只要在每场比赛开始后记录下兔子和乌龟的数据——兔子的速度v1(表示每秒兔子能跑v1米),乌龟的速度v2,以及兔子对应的t,s值,以及赛道的长度l——就能预测出比赛的结果。但是小华很懒,不想通过手工计算推测出比赛的结果,于是他找到了你——清华大学计算机系的高才生——请求帮助,请你写一个程序,对于输入的一场比赛的数据v1,v2,t,s,l,预测该场比赛的结果。
输入格式
  输入只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2<=100;t<=300;s<=10;l<=10000且为v1,v2的公倍数)

#include
using namespace std;int main(){
int v1,v2,t,s,l; scanf("%d%d%d%d%d",&v1,&v2,&t,&s,&l); int l1=0,l2=0;//兔子,乌龟跑过的距离 int flag=false;//兔子是否在休息 int d;//兔子休息时长 int cnt=0;//消耗时长 while(true){
cnt++; if(flag){
d++; if(d==s)flag=false; }else l1+=v1; l2+=v2; //printf("%d %d %d %d\n",cnt,d,l1,l2); if(l1==l&&l1==l2){
printf("D"); break; }else if(l1==l){
printf("R"); break; }else if(l2==l){
printf("T"); break; } if(l1-l2>=t&&flag==false){
flag=true; d=0; } } printf("\n%d",cnt); return 0;}

时间转换

问题描述

  给定一个以秒为单位的时间t,要求用“::”的格式来表示这个时间。表示时间,表示分钟,而表示秒,它们都是整数且没有前导的“0”。例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。
输入格式
  输入只有一行,是一个整数t(0<=t<=86399)。

#include
using namespace std;int main(){
int n; cin>>n; printf("%d:%d:%d",n/3600,n%3600/60,n%60); return 0;}

字符串对比

问题描述

  给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:
  1:两个字符串长度不等。比如 Beijing 和 Hebei
  2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
  3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing
  4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
  编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。
输入格式
  包括两行,每行都是一个字符串

#include
using namespace std;char toLower(char c){
if(c<='Z')c+=32; return c;}int stringCmp(string &s1, string &s2){
for(int i=0;i
>s1>>s2; if(s1.size()!=s2.size())cout<<1; else{
if(s1==s2)cout<<2; else cout<

FJ的字符串

问题描述

  FJ在沙盘上写了这样一些字符串:
  A1 = “A”
  A2 = “ABA”
  A3 = “ABACABA”
  A4 = “ABACABADABACABA”
  … …
  你能找出其中的规律并写所有的数列AN吗?
输入格式
  仅有一个数:N ≤ 26。

#include
using namespace std;int main(){
string s = "A"; int n; cin>>n; for(int i=1;i

参考博客

转载地址:http://weden.baihongyu.com/

你可能感兴趣的文章
js循环语句
查看>>
js中时钟的写法
查看>>
js事件冒泡
查看>>
京东金融曹鹏:通过JDD大赛,实现“比你更懂你”的极致价值,让金融更简单,更平等
查看>>
HTML我的家乡杭州网页设计作业源码(div+css)~ HTML+CSS网页设计期末课程大作业 ~ web前端开发技术 ~ web课程设计网页规划与设计 ~HTML期末大作业
查看>>
HTML网页设计期末课程大作业~动漫樱桃小丸子5页表格div+css学生网页设计作业源码
查看>>
HTML学生网页设计作业成品~化妆品官方网站设计与实现(HTML+CSS+JS)共8个页面
查看>>
web课程设计网页规划与设计~在线阅读小说网页共6个页面(HTML+CSS+JavaScript+Bootstrap)
查看>>
HTML期末大作业~棋牌游戏静态网站(6个页面) HTML+CSS+JavaScript
查看>>
XmlValidationModeDetector源码分析
查看>>
解析 xml 为Document
查看>>
中国银行2013年校园招聘机试回忆录(综合部分专业题 考点)
查看>>
广发银行2013校园招聘笔试回忆录
查看>>
Android canvas rotate():平移旋转坐标系至任意原点任意角度-------附:android反三角函数小结...
查看>>
Matlab读取avi视频并播放 你必须要知道的
查看>>
word字体大小与公式编辑器字体对照表
查看>>
visio画图-----如何克服两箭头交叉变形 及 箭头自动重绘?
查看>>
Android开发:安装NDK,移植OpenCV2.3.1,JNI调用OpenCV全过程
查看>>
“金9银10”2020年JVM高频率面试题整理,技术提升就差一个点!
查看>>
简简单单的分享2020常见的MySQL面试题MySQL与答案整理
查看>>