学堂 学堂 学堂公众号手机端

第十三届蓝桥杯模拟赛(第一期)题解-代码详解(C语言)

lewis 4年前 (2021-12-14) 阅读数 6 #技术


第十三届蓝桥杯模拟赛(第一期)题解-代码详解(C语言)题解目录​​第十三届蓝桥杯模拟赛(第一期)题解-代码详解(C语言)​​​​(1)枚举​​​​(2)枚举+多级判定​​​​(3)阶乘计算(可多方法)​​​​(4)上台阶问题dfs​​​​(5)三层循环枚举​​​​(6)速度计算​​​​(7)棋盘颜色问题​​​​(8)(9)(10)下次更新​​
(1)枚举


#include <stdio.h>
#include <stdlib.h>
int main() {
int i=1000,n=9999,sum=0;
for(;i<=9999;i++){
if(i%128 == 0){
sum++;
}
}
printf("%d",sum);
return 0;
}

(2)枚举+多级判定



#include <stdio.h>
#include <stdlib.h>
int main() {
int i=1000,n=9999,sum=0;
for(;i<=n;i++){
if((i/1000 == i/10%10) && (i/100%10 == i%10-1) ){
sum++;
}
}
printf("%d",sum);
return 0;
}
(3)阶乘计算(可多方法)


#include <stdio.h>
#include <stdlib.h>
int fun(int n){
if(n==1){
return 1;
}
return fun(n-1)*n;
}
int main() {
int i=1000,n=9999,sum=0;
for(i=1;i<=21;i++){
if(i%2 == 0){
sum++;
}
}
printf("%d",sum);
printf("\n阶乘是:%d",fun(sum));
return 0;
}
(4)上台阶问题dfs


#include <stdio.h>
#include <stdlib.h>

int max = 0;
int T[16] = {0,1,2,1,1,1,1,5,5,4,-1,-1,-2,-3,-1,-9};

void fun(int i,int x,int sum){//i为第步数,x为台阶数,sum为得分
if(i>=7){//超过最新的步数 结束函数
return;
}
if(x == 15){//到达15层 判定满足条件的分数 并且赋值
max = sum>max?sum:max;
return;
}
int j=0;
for(j=1;j<=4;j++){
fun(i+1,x+j,sum +=T[x+j]);
}
}
int main() {
fun(1,0,0);
printf("%d",max);
return 0;
}
(5)三层循环枚举

#include <stdio.h>
#include <stdlib.h>
int main() {
int a[20] = {2,9,17,4,14,10,25,26,11,14,16,17,14,21,16,27,32,20,26,36};
int i,j,k,sum=0;
for(i=0;i<18;i++){
for(j=i+1;j<19;j++){
for(k=j+1;k<20;k++){
if(a[i]<a[j] && a[j]<a[k]){
sum++;
}
}
}
}
printf("%d",sum);
return 0;
}
(6)速度计算


#include <stdio.h>
#include <stdlib.h>
int main() {
int t=0,v=0;
scanf("%d%d",&t,&v);
printf("%d",t*v);
return 0;
}
(7)棋盘颜色问题



观察可以知道奇数行对应的奇数列就是黑色块,偶数行对应的偶数列就是黑色的

#include <stdio.h>
#include <stdlib.h>

int main() {
int n=0,m=0,i=1,j=1,sum=0;
scanf("%d%d",&n,&m);
// printf("n=%dm=%d\n",n,m);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
if(i%2 != 0 && j%2 != 0){
// printf("ji:%d,%d\n",i,j);
sum++;
}else if(i%2 == 0 && j%2 == 0){
// printf("ou:%d,%d\n",i,j);
sum++;
}
}
}
printf("%d",sum);
return 0;
}
(8)(9)(10)下次更新


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门