前言:以下代码部分仅供参考,C语言解答部分全部来自网友,Java语言部分部分参考自网友,对于答案的正确性不能完全保证。


试题1

数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示。
我们可以通过计算机验证其在有限范围的正确性。 对于大数,简单的循环嵌套是不适宜的。下面的代码给出了一种分解方案。 请仔细阅读,填写空缺的代码(下划线部分)。 注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
直接写在题面中不能得分。 int f(int n, int a[], int idx)
{
if(______________) return 1; // 填空1
if(idx==4) return 0; for(int i=(int)sqrt(n); i>=1; i--)
{
a[idx] = i; if(_______________________) return 1; // 填空2
} return 0;
} int main(int argc, char* argv[])
{
for(;;)
{
int number;
printf("输入整数(1~10亿):");
scanf("%d",&number); int a[] = {0,0,0,0}; int r = f(number, a, 0); printf("%d: %d %d %d %d\n", r, a[0], a[1], a[2], a[3]); } return 0;
} a[0]*a[0] + a[1]*a[1] + a[2]*a[2] + a[3]*a[3] == n
f(n, a, idx + 1) == 1
来自网友:

本题满分: 9分

填空1: (3分)

n==0

或者:0==n

填空2: (6分)

f(n-i*i, a, idx+1)

或者:

f(n-i*i, a, idx+1) > 0

f(n-i*i, a, idx+1) == 1

 

试题2

在对文本进行简单加密的时候,可以选择用一个n位的二进制数,对原文进行异或运算。
解密的方法就是再执行一次同样的操作。 加密过程中n位二进制数会循环使用。并且其长度也可能不是8的整数倍。 下面的代码演示了如何实现该功能。
请仔细阅读,填写空缺的代码(下划线部分)。 void f(char* buf, unsigned char* uckey, int n)
{ int i;
for(i=0; i<n; i++)
buf[i] = buf[i] ^ uckey[i]; //异或运算,即:buf[i] ^= uckey[i]
} int main(int argc, char* argv[])
{
char p[] = "abcd中国人123"; // 待加密串 char* key = "11001100010001110"; //以串的形式表达的密匙,运算时要转换为按位存储的形式。 int np = strlen(p);
int nk = strlen(key);
unsigned char* uckey = (unsigned char*)malloc(np); // unsigned char是无符号字节型,char类型变量的大小通常为1个字节(1字节=8个位)
// 密匙串需要按位的形式循环拼入 uckey中
int i;
for(i=0; i<np*8; i++)
{
if(key[i%nk]=='1')
______; // 填空1按位或
else
______; // 填空2按位与
} f(p, uckey, strlen(p));
f(p, uckey, strlen(p)); printf("%s\n", p); free(uckey); return 0;
} uckey[i/8] |= (unsigned char)0x80 >> (i%8)
uckey[i/8] &= ~((unsigned char)0x80 >> (i%8))

本题满分:14分

填空1:(7分)

uckey[i/8] |= (unsigned char)0x80 >> (i%8);    //>>表示移位,位逻辑运算符:&按位与,|按位或,^按位异或,~取反移位运算符:<<左移,>>右移

从数学上看,左移1位等于乘以2,右移1位等于除以2,然后再取整,移位溢出的丢弃

填空2:(7分)

uckey[i/8] &= ~((unsigned char)0x80 >> (i%8));

注意所有逻辑等价形式都是正确的答案,比如可以使用左移位:

  (unsigned char)0x80 >> 2  等价于:0x01 << 5

 

试题3

为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。
但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。
事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。 我们希望寻找到能除尽1至n的的每个数字的最小整数。 不要小看这个数字,它可能十分大,比如n=100, 则该数为:
69720375229712477164533808935312303556800 请编写程序,实现对用户输入的 n (n<100)求出1~n的最小公倍数。 例如:
用户输入:
6
程序输出:
60 用户输入:
10
程序输出:
2520 要求考生把所有函数写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。
对于编程题目,要求选手给出的解答完全符合ANSI C标准,不能使用c++特性;
不能使用诸如绘图、中断调用等硬件相关或操作系统相关的API。
import java.math.BigInteger;
import java.util.Scanner; public class Main { public void getResult(int n) {
BigInteger temp1 = BigInteger.ONE;
BigInteger temp2 = BigInteger.ONE;
BigInteger temp3 = BigInteger.ONE;
for(int i = 2;i <= n;i++) {
temp1 = temp3;
temp2 = new BigInteger(""+i);
temp3 = temp1.gcd(temp2);
temp3 = temp1.multiply(temp2).divide(temp3);
}
System.out.println(temp3);
} public static void main(String[] args) {
Main test = new Main();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
test.getResult(n);
}
}

来自网友C语言版:

解答:
最小公倍数就是所有质数的相应幂的积
比如N=10
小于10的质数有2,3,5,7
对应的最大幂是:3,2,1,1
则最小公倍数是:2^3x3^2x5^1x7^1 = 2520 #include <iostream>
#include <cstring>
#include <cmath>
using namespace std; int a[50] = {0};//存素数
bool vis[100];
int b[50] = {0};//存幂次 void init_prim()//求小于100的所有素数存入数组a
{
int i,j,k;
int m = (int)(sqrt(100.0)+0.5);
memset(vis,0,sizeof(vis));
vis[0] = 1;
vis[1] = 1;//必须加上,否则第一个素数别认为是1
for(i=2; i<=m; i++)
if(!vis[i])
{
for(j=2*i; j<=100; j+=i)
vis[j] = 1;
}
int t = 0;
for(k=0; k<100; k++)
if(!vis[k])
a[t++] = k;
} int main()
{
int i,j,k;
init_prim();
int n;
//2^6 = 64,2^7 = 128;由于n最大100,幂次最大6
// for(i=0 ; i<100; i++)//素数没问题
// if(!vis[i])
// cout<<i<<endl;
// while(1);
while(cin>>n)
{
memset(b,0,sizeof(b));
for(i=0; i<=n&&a[i]<=n; i++)//”1到n素数个数小于n的一半 “不对,3有两个素数
{
// cout<<a[i]<<"-----"<<endl;
for(j=1; j<=6; j++)
{
if(pow((double)a[i],(double)j)>(double)n)
{
b[i] = j -1;//b的下标不必新开
break;
}
else if(pow((double)a[i],(double)j) == (double)n)//必须分开
{
b[i] = j;
break;
}
}
}
//不知道是不是pow函数的问题,把ans定义为int得出的结果出问题,double就对了
double ans = 1;
for(k=0; k<i; k++)
{
//cout<<a[k]<<"........"<<b[k]<<endl;
ans *= pow((double)a[k],(double)b[k]);
}
cout<<(int)ans<<endl;
}
return 0;
} //该程序 到25时就溢出,ans换位long long前几个就错误啦,此时需要把pow函数换掉 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std; const int N = 105;
int n;
int a[N][50];
int b[N] = {0}; void multiply()
{
int i,j,k;
memset(a,0,sizeof(a));
for(i=3; i<=100; i++)
{
/*
下面的是直接按平常的乘法,乘数的一位乘以被乘数的每一位并处理进位;另外是乘数整体乘以被乘数的每一位最后统一处理进位
*/
int temp = 0;
a[i][0] = 1;//很重要
for(j=2; j<=i; j++)
{
int c = 0;
for(k=0; k<50; k++)//最大不超过160位 ,目前是100!,最后除以3等50
{
temp = a[i][k]*b[j] + c;
a[i][k] = temp%1000;
c = temp/1000;
}
}
}
} void printData(int n)
{
int i,j,k;
for(i=49; i>=0; i--)
if(a[n][i])
break;
cout<<a[n][i];//第一个不输出前导0
for(j=i-1; j>=0; j--)
printf("%03d",a[n][j]);
cout<<endl;
} int main()
{
int i, j, k;
for(i=0; i<N; i++)
b[i] = i;
for(i=2; i<N; i++)
for(j=i+1; j<=N; j++)
{
if(b[j]%b[i]==0)
b[j] /= b[i];
//cout<<b[j]<<endl;
}
//for(i=0; i<100; i++)
// cout<<b[i]<<endl;
//while(1);
multiply(); while(cin>>n)
{ if(n==1||n==2)
{
cout<<n<<endl;
continue;
} printData(n);
}
return 0;
}

试题4

为解决交通难题,某城市修建了若干条交错的地铁线路,线路名及其所属站名如stations.txt所示。

线1
苹果园
....
四惠东 线2
西直门
车公庄
....
建国门 线4
.... 其中第一行数据为地铁线名,接下来是该线的站名。
当遇到空行时,本线路站名结束。 下一行开始又是一条新线....直到数据结束。 如果多条线拥有同一个站名,表明:这些线间可以在该站换车。 为引导旅客合理利用线路资源,解决交通瓶颈问题,该城市制定了票价策略: 1. 每条线路可以单独购票,票价不等。
2. 允许购买某些两条可换乘的线路的联票。联票价格低于分别购票。 单线票价和联合票价如 price.txt 所示。 线1 180
.....
线13 114
线1,线2 350
线1,线10 390
..... 每行数据表示一种票价
线名与票价间用空格分开。如果是联票,线名间用逗号分开。
联票只能包含两条可换乘的线路。 现在的问题是:根据这些已知的数据,计算从A站到B站最小花费和可行的换乘方案。 比如,对于本题目给出的示例数据 如果用户输入:
五棵松,奥体中心 程序应该输出:
-(线1,线10)-线8 = 565 如果用户输入:
五棵松,霍营 程序应该输出:
-线1-(线4,线13) = 440 可以看出,用户输入的数据是:起始站,终到站,用逗号分开。
程序输出了购票方案,在括号中的表示联票,短横线(-)用来分开乘车次序。
等号后输出的是该方案的花费数值。 请编程解决上述问题。
注意:
1. 我们测试您的程序时,所用数据与题目中的示例数据不同,但格式完全一样。
2. 当多个方案有相同的最小花费,输出任意一个方案即可。 要求考生把所有类写在一个文件中。
调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。请不要使用package语句。

对于此题,重点在于文本文件中信息的读取,并选择合适的数据结构来处理分类,好复杂的感觉,又看到相关备注,说明:此题类型在第四届以后便不再用这种形式来出题,所以就简单的看了一下网友的代码,没有自己上机实现。

Java版:蓝桥杯-地铁换乘

来自网友的C语言版:

 #include<iostream>
using namespace std;
#define LEN 50
typedef struct stations{
char name[];
int len;
int roads[];
struct stations *left;
struct stations *right;
}Stations; typedef struct etree{
int value;
int roadNum;
struct etree *father;
int childnum;
}ETree; typedef struct queue{
ETree *tie;
struct queue *next;
}Queue; void pushQueue(Queue &head, ETree *&etree){
Queue *p=head.next,*q=&head;
while(p!=NULL && (p->tie->value<etree->value)){
q=p;
p=p->next;
}
q->next=(Queue*)malloc(sizeof(Queue));
q->next->tie=etree;
q->next->next=p;
}
void freeEtree(ETree *q){
ETree *p;
while(q->childnum==){
p=q;
q=q->father;
free(p);
if(q!=NULL)
q->childnum--;
else
break;
}
} void freeAll(Stations *&head){
if (head!=NULL){
freeAll(head->left);
freeAll(head->right);
free(head);
}
} void showBest(ETree *h,int price[][LEN],char roadName[][],int roadNum){
if(h!=NULL){
if (h->faher==NULL){
printf("%s",roadName[h->roadNum]);
}
else{
int j;
j=h->roadNum;
if (h->value==(price[j][j]+h->father->value)){
showBest(h->father,price,roadName,roadNum);
if (price[j][roadNum]){
printf("-(%s,%s)",roadName[j],roadName[price[j][roadNum]-]); }
else
printf("-%s",roadName[j]);
}
else{
showBest(h->father->father,price,roadNme,roadNum);
printf("-(%s,%s)",roadName[h->father->roadNum],roadName[j]);
}
}
}
} inline int compares(char s1[],int n1,chr s2[],int n2){
if (n1!=n2)
return n1-n2;
return strcmp(s1,s2);
}
boll findStation(Stations* &head,Stations* &p,char s[]){
int len=strlen(s);
int t;
Stations q;
p=head;
while (n!=NULL){
q=p;
t=compares(s,len,p->name,p->len);
if (t<)
p=p->left;
else
retrn true;
}
p=q;
return false;
} void insert(Stations* &head,char s[],int road,int price[][LEN]{
Stations *p,*q;
int t;
t=strlen(s);
if(s[t-]=='\n')
s[t-]='\0';
if(head==NULL){
p=(Stations *)malloc(sizeof(Stations));
p->left=NULL;
p->rght=NULL;
strcpy(p->name,s);
p->len=strlen(s);
p->road[]=;
p->road[]read;
head=p;
}
else{
if (findStation(head,p,s)){
p->roads[]++;
t=p->roads[];
p->roads[t]=road;
for(t--;t>,t--){
price[p->road[t]][road]=-;
price[road][p->road[t]]=-;
}
}
else{
q=p;
p=(Stations *)malloc(sizeof(Stations));
p->left=NULL;
p->right=NULL;
strcpy(p->name,s);
p->len=strlen(s);
p->road[]=;
p->road[]=road;
t=compares(s,p->len,q->name,q->len);
if(t<)
q->left=p;
else
q->right=p;
}
}
} int GetRoadNum(char *r,char roadName[][],int road Num){
for (int i=;i<roadNum;i++)
if (strcmp(roadName[i],r)==)
return i;
return ;
} void main()
{
//[roadnum][roadnum+1]
int price[LEN][LEN]={};
char roadName[LEN][];
int i,j,k,t;
char line[];
int roadNum;
Stations *head=NULL;
FILE *fp;
if((fp=fopen("stations.xt","r"))==NULL){
printf("找不到stations文件\n");
return;
}
roadNum=;
while(!feof(fp)){
fscanf(fp,"%s%*c",roadName[roadNum]);
fgets(line,,fp);
while(!feof(fp)&&line[]!='\n'){
insert(head,line,roadNum,price);
fgets(line,,fp);
}
roadNum++;
}
roadNum++;
}
insert(head,line,roadNum-,price);
fclose(fp);
if ((fp=fopen("price.txt","r"))==NULL){
printf("找不到price文件");
}
while (!feof(fp)){
fscanf(fp,"%s,line);
fscanf(fp,"%d",&k);
for(t=;line[t]!='\0'&&line[t]!=",";t++);
if (line[t]==','){
line[t]='\0';
i=GetRoadNum(line,roadName,roadNum);
j=GetRoadNum(line+t+,roadName,roadNm);
price[i][j]=k;
price[j][i]=k;
if (price[i][i]>k){
price[i][roadNum]=j+;
}
if (price[j][j]>k){
price[j][j]=k;
price[j]roadNum]=i+;
}
}
else{
i=GetRoadNum(line,roadName,roadNum);
price[i][i]=k;
}
} fclose(fp); char starts[]={"五棵松"},ends[]="奥体中心"};
Stations *sroad,*eroad;
Queue Qhead, *h;
Etree *p,*q;
while(true){
char Flag[LEN]={};//为-1表示目标,为0表示尚未发生过扩展
Qhead.next=NULL;
Qhead.tie=NULL;
scanf("%[^,\n]s",starts);
if (getchar()!=',')
break;
scanf("%[^\n]s",ends);
getchar();
if (!findStation(head,sroad,starts)){
printf("未找到%s的匹配项\n",starts);
continue;
}
if (!findStation(head,eroad,ends)){
printf("未找到%s的匹配项\n",ends);
continue;
}
for (i=;i<=sroad->roads[];i++){
p=(ETree*)malloc(sizeof(ETree));
p->father=NULL;
p->childnum=;
p->roadNum=sroad->roads[i];
p->value=price[p->roadum][p->roadNum];
pushQueue(Qhead,p);
}
for (i=;i<=eroad->roads[];i++){
Flag[eroad->roads[i]]=-;
}
while(Qhead.next!=NULL){
h=Qhead.next;
q=h->tie;
if (Flag[q->roadNum]==-){
break;
}
Qhuad.next=Qhead.next->next;
i=q->roadNum;
if (Flag[i]!=){
for(j=;j<roadNum;j++){
if (price[i][j]){
q->childnum++;
p=(ETree*)malloc(sizeof(ETree));
p->father=q;
p->childnum=;
p->roadNum=j;
k=price[j][j]>){
if(price[i][j]>){
if(q->father!=NULL)
t=price[i][j]+q->father->value;
else
t=price[i][j];
if (k>t)
k=t;
}
p->value=k;
pushQueue(Qhead,p);
}
}
Flag[i]=;
}
freeETree(h->tie);
free(h);
}
if (Qhead.next!=NULL){
showBest(q,price,roadName,roadNum);
printf("=%d\n",q->value);
}
else
printf("此路不通\n");
for(;Qhead.next!=NULL;){
h=Qead.next;
Qhead.nexQhead.next->next;
freeETree(h->tie);
free(h);
}
}
freeAll(head);
}

试题5

BMP是常见的图像存储格式。
如果用来存黑白图像(颜色深度=),则其信息比较容易读取。 与之相关的数据: (以下偏移均是从文件头开始)
偏移:10字节, 长度4字节: 图像数据真正开始的位置。
偏移:18字节, 长度4字节: 位图的宽度,单位是像素。
偏移:22字节, 长度4字节: 位图的高度,单位是像素。 从图像数据开始处,每个像素用1个二进制位表示。
从图片的底行开始,一行一行向上存储。 Windows规定图像文件中一个扫描行所占的字节数必须是4字节的倍数,
不足的位均以 填充。例如,图片宽度为45像素,实际上每行会占用
8个字节。 可以通过Windows自带的画图工具生成和编辑二进制图像。
需要在“属性”中选择“黑白”,指定为二值图像。
可能需要通过 查看 | 缩放 | 自定义... 把图像变大比例一些,
更易于操作。 图像的左下角为图像数据的开始位置。白色对应1,黑色对应0 我们可以定义:两个点距离如果小于2个像素,则认为这两个点连通。
也就是说:以一个点为中心的九宫格中,围绕它的8个点与它都是连通的。
如:t1.bmp 所示,左下角的点组成一个连通的群体;
而右上角的点都是孤立的。 in.bmp t1.bmp
程序的目标是:根据给定的黑白位图,分析出所有独立连通的群体,
输出每个连通群体的面积。所谓面积,就是它含有的像素的个数。 输入数据固定存在in.bmp中。 如示例的in.bmp,
程序应该输出: 该输出表示:共有4个连通群体。
输出的连通体面积间的顺序可以随意。 请编程解决上述问题。 我们测试程序的时候,会使用不同的in.bmp文件。 要求考生把所有类写在一个文件中。
调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。请不要使用package语句。

图 in.bmp

图 t1.bmp

这题要读入图片文件数据,感觉头大啊,此前做的题,几乎没有遇到要读取文件中的数据,而现在竟然还碰到了读取图片的数据,看到此题的核心:即使用DFS求取连通图的问题,并且返回每一个连通图中包含的顶点个数,但是对于此题处理读取数据的问题,就没有仔细去探究,下面贴出一段网友的C语言代码,以作参考:

 include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h> void main(){
int i,j,k,m;
int width,height,start,world;
int *bmp,*Lcount;
bool *Lflag;
FILE *fp;
if((fp=fopen("in1.bmp","rb"))==NULL){
printf("文件打开失败");
return;
}
fseek(fp,10L,);
fscanf(fp,"%4c",&start); // 4c表示该数据占4个字节
// printf("start = %d\n",start);
fseek(fp,,);
fscanf(fp,"%4c",&width);
// printf("width = %d\n",width);
fseek(fp,,);
fscanf(fp,"%4c",&height);
// printf("height = %d\n",height);
bmp = (int*)malloc((width+)*sizeof(int));
memset(bmp,,(width+)*sizeof(int));
Lcount = (int*)malloc(width*sizeof(int));
memset(Lcount,,width*sizeof(int));
Lflag = (bool*)malloc(width*sizeof(bool));
memset(Lflag,,width*sizeof(bool));
Lcount--;
Lflag--;
fseek(fp,start,);
world = ( width% ? width/+ : width/ )*;
int last,i1,i2,i3;
int eCount =
for(i= i<height i++ ){
char c;
k=;
last=;
for(j= j<world j++){
fscanf(fp,"%c",&c);
for(m = m >= && k<=width m-- ){
if( !( <<m & c ) ){
//printf("*");
if(bmp[k]){
last = bmp[k];
Lcount[last]++;
Lflag[last] = true
}
else{
i1 = last ? last : bmp[k-]
i3 = bmp[k+]
last = ;
if( i1 || i3){
if( i1 && i3 && ( i1 != i3 ) ){//确定需要连接
Lcount[i1] += Lcount[i3]
Lcount[i3]=;
for(i2=;i2<=width i2++){
if(bmp[i2]==i3)
bmp[i2] = i1;
}
}
else{
if(!i1)
i1=i3;
}
bmp[k] = i1
Lcount[i1]++;
Lflag[i1] = true
}
else{//插入
for(i2=;Lcount[i2];i2++);
Lcount[i2]=;
bmp[k] = i2
Lflag[i2] = true
}
}
}
else{ //printf(" ");
last = bmp[k]
bmp[k] =
}
k++;
}
}
//printf("\n");
for(i2=;i2<=width;i2++){
if(Lcount[i2] && !Lflag[i2] ){
printf("%d\n",Lcount[i2]);
Lcount[i2] =
eCount++;
}
Lflag[i2]=false;
}
}
fclose(fp);
free(Lflag+);
free(Lcount+);
free(bmp);
printf("count=%d\n",eCount);
}

算法笔记_199:第二届蓝桥杯软件类决赛真题(C语言本科)的更多相关文章

  1. 算法笔记_208:第六届蓝桥杯软件类决赛真题(Java语言A组)

    目录 1 胡同门牌号 2 四阶幻方 3 显示二叉树 4 穿越雷区 5 切开字符串 6 铺瓷砖   前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 胡同门牌号 标题:胡同门牌号 小明家住在一条胡同里. ...

  2. 算法笔记_210:第六届蓝桥杯软件类决赛真题(Java语言C组)

    目录 1 机器人数目 2 生成回文数 3 空心菱形 4 奇怪的数列 5 密文搜索 6 居民集会 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 机器人数目 标题:机器人数目 少年宫新近邮购了小机器人 ...

  3. 算法笔记_200:第三届蓝桥杯软件类决赛真题(C语言本科)

    目录 1 星期几 2 数据压缩 3 拼音字母 4 DNA比对 5 方块填数   前言:以下代码部分仅供参考,若有不当之处,还望路过同学指出哦~ 1 星期几 1949年的国庆节(10月1日)是星期六. ...

  4. 算法笔记_212:第七届蓝桥杯软件类决赛真题(Java语言B组)

    目录 1 愤怒小鸟 2 反幻方 3 打靶 4 路径之谜 5 碱基 6 圆圈舞 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 愤怒小鸟 愤怒小鸟 X星球愤怒的小鸟喜欢撞火车! 一根平直的铁轨上两火车 ...

  5. 算法笔记_206:第五届蓝桥杯软件类决赛真题(Java语言A组)

    目录 1 海盗分金币 2 六角幻方 3 格子放鸡蛋 4 排列序数 5 幂一矩阵 6 供水设施    前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 海盗分金币 有5个海盗,相约进行一次帆船比赛. 比 ...

  6. 算法笔记_204:第四届蓝桥杯软件类决赛真题(Java语言C组)

    目录 1 好好学习 2 埃及分数 3 金蝉素数 4 横向打印二叉树 5 危险系数 6 公式求值   前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 好好学习 汤姆跟爷爷来中国旅游.一天,他帮助中国的 ...

  7. 算法笔记_205:第五届蓝桥杯软件类决赛真题(C语言B组)

    目录 1 年龄巧合 2 出栈次序 3 信号匹配 4 生物芯片 5 Log大侠 6 殖民地   前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 年龄巧合 小明和他的表弟一起去看电影,有人问他们的年龄. ...

  8. 算法笔记_203:第四届蓝桥杯软件类决赛真题(C语言B组)

    目录 1 猜灯谜 2 连续奇数和 3 空白格式化 4 高僧斗法 5 格子刷油漆 6 农场阳光   前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 猜灯谜 标题:猜灯谜 A 村的元宵节灯会上有一迷题: ...

  9. 算法笔记_202:第三届蓝桥杯软件类决赛真题(Java高职)

    目录 1 填算式 2 提取子串 3 机器人行走 4 地址格式转换 5 排日程   前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 填算式 [结果填空] (满分11分) 看这个算式: ☆☆☆ + ☆☆ ...

随机推荐

  1. 百度搜索URL参数你知道多少

    http://www.baidu.com/s?wd=关键字 wd(Keyword):查询的关键词: http://www.baidu.com/s?wd=关键字&cl=3 cl(Class):搜 ...

  2. 格林第一季/全集Grimm迅雷下载

    本季Grimm Season 1 (2011) 第一季看点:该剧由<天使调查团>的一对制片组合Jim Kouf.David Greenwalt打造. 该剧根据<格林童话>中的原 ...

  3. Android 阴影,圆形的Button

    MainActivity.java package com.kale.gridlayout; import android.app.Activity; import android.graphics. ...

  4. asp.net 判断用户是否使用微信浏览器

    平时我们看一些网页的时候会发现这样的功能:有的页面只能在微信里访问,如果在电脑上访问就提示用户请到微信上访问该网页.这个用C#怎么实现呢?我们结合代码来看看. 首先,我们需要先判断用户使用的是什么浏览 ...

  5. verilog语法实例学习(4)

    Verilog模块 Verilog中代码描述的电路叫模块,模块具有以下的结构: module module_name[ (portname {, portname})]; //端口列表 [parame ...

  6. JS 判断上传 文件 大小

    随着HTML5 的发展,我们可以用file控件的size属性来获取客户端 上传文件的大小,但是 我今天测试 发现IE10支持,IE11的某个版本不支持, 于是就借用img控件来加载一此, 以此来获取文 ...

  7. Word Ladder leetcode java

    题目: Given two words (start and end), and a dictionary, find the length of shortest transformation se ...

  8. 领扣-120 三角形最小路径和 Triangle MD

    三角形最小路径和 Triangle 数组 动态规划 问题 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [2], [3,4], [6,5,7], ...

  9. jquery.cookie 使用方法

    一个轻量级的cookie 插件,可以读取.写入.删除 cookie. jquery.cookie.js 的配置 首先包含jQuery的库文件,在后面包含 jquery.cookie.js 的库文件. ...

  10. php7安装mongoDB扩展

    本文我们使用pecl命令来安装 首先来到php7的安装目录 $ /usr/local/php7/bin/pecl install mongodb 回车,执行成功后,会输出以下结果: …… Build ...