一.年号字串

题目链接https://www.lanqiao.cn/problems/605/learning/

小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。对于 27 以上的数字,小明用两位或更长位的字符串来对应,例如 A A对应 27,AB 对应 28,AZ 对应 52,LQ 对应 329。

请问 2019 对应的字符串是什么?

思路

A~Z分别对应数字1~26,这个不难理解。

解释一下LQ:先对329取余,然后再对329相除,这样下去直到329为0结束过程。

329%26=17,17对应的就是题目说的 Q ,而在计算机中应该再加64(64对应的ASCII码为@,65   对应字符A,想一下为什么这里不加65而加64),再让329/26=12,再让12%26=12,此时12   对 应的就是 L 。

#include <stdio.h>
#include <stdlib.h>int main(int argc, char *argv[])              //这里main括号内的不用管,就相当于main(),因为括号内的变量在主函数没有用到
{// 请在此输入您的代码char s[5];int sum=2019;int i=0;while(sum!=0){s[i++]=sum%26+64;sum/=26;}for(int j=i-1;j>=0;j--)                    //从后遍历{printf("%c",s[j]);}return 0;
}

 二.数列求值

题目链接https://www.lanqiao.cn/problems/600/learning/

给定数列 1, 1, 1, 3, 5, 9, 17,⋯,从第 4 项开始,每项都是前 3 项的和。

求第 20190324 项的最后 4 位数字。

思路

这道题和斐波那契数比较相似,感兴趣的童鞋可以看一看  ——>  斐波那契数

一种方法可以用一个数组 a,a1=[1], a2=[1], a3=[1],那么求之后的每一项就是a[n]=a[n-1]+a[n-2]+a[n-3]。

#include<stdio.h>int main()
{int a[20190324]={1,1,1};for(int i=3;i<20190324;i++){a[i]=(a[i-1]+a[i-2]+a[i-3])%10000;    //因为需要取后4位数字}printf("%d",a[20190323]);
}

那么取余后的结果会不会影响下一个数的大小呢(这是一个需要思考的问题)

第二种方法

#include<stdio.h>int main()
{int a = 1, b = 1, c = 1;int d;for (int i = 4; i <=20190324; i++){d = (a + b + c)%10000;              //因为题目说过要后4位,所以呢对数取余10000a = b;b = c;c = d;}printf("%d",d);return 0;
}

三.数的分解

题目链接https://www.lanqiao.cn/problems/606/learning/

把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?

注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18和 1001+1000+18 被视为同一种。

思路

让数字对10进行取余,判断2和4是否出现,循环比较简单,看如下代码,注意注释的一些细节就可以了

#include <stdio.h>
#include <stdlib.h>
#include<stdbool.h>
int judge(int n)            //判断是否有2和4的出现
{while(n){if(n%10==2||n%10==4)return false;n/=10;}return true;
}int main()
{// 请在此输入您的代码int k;int cnt=0;for(int i=1;i<2019;i++){for(int j=1;j<2019;j++){k=2019-i-j;if(i<j&&j<k&&judge(i)&&judge(j)&&judge(k))    //注意这里i<j&&j<k不能写成i<j<k{cnt++;}}}printf("%d",cnt);return 0;
}

四.特别数的和

题目链接https://www.lanqiao.cn/problems/191/learning/

小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。

请问,在 1 到 n 中,所有这样的数的和是多少?

 思路

与上面一道题比较类似,主要是取余判断2,0,1,9的出现

#include <stdio.h>
#include <stdlib.h>
int judge(int n)
{while(n)
{if(n%10==2||n%10==1||n%10==1||n%10==9||n%10==0)return 1;n/=10;
}return 0;
}
int main(int argc, char *argv[])
{int cnt=0;// 请在此输入您的代码int n;scanf("%d",&n);for(int i=1;i<=n;i++){if(judge(i))cnt+=i;       //if(judge(i))表示if  judge(i)不等于0}printf("%d",cnt);return 0;
}

if(judge(i))等同于 if(judge(i)!=0)

五.完全二叉树的权值

题目链接https://www.lanqiao.cn/problems/183/learning/题目描述

给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下、从左到右的顺序依次是 A1, A2, ··· AN如下图所示:

现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点 权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。

注:根的深度是 1。

输入描述

第一行包含一个整数 N(1<=N<=)。

第二行包含 N 个整数 A1, A2, ··· AN (-<=N<=)。

输出描述

输出一个整数代表答案。

输入输出样例

示例

输入

7
1 6 5 4 3 2 1

输出

2

 思路

求出每个深度对应数的总和,这里用一个sum数组确定每一深度对应的权值之和,然后求这个数组的最大值。

这里 k=log(i)/log(2)来源于下面这个公式

说明:看一下第三层 A4~A7把 i= 4~7分别代入公式,发现k都为2;

#include <stdio.h>
#include <stdlib.h>int main(int argc, char *argv[])
{int temp=0,i,k;int ans,max=0,n;int sum[100001]={0};scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&temp);k=log(i)/log(2)+1;        //k表示每个i所对应的深度sum[k]+=temp;}int deep=log(n)/log(2)+1;  //deep为n对应的深度for(i=1;i<=deep;i++){if(max<sum[i]){max=sum[i];ans=i;}}printf("%d",ans);return 0;
}

六.等差数列

题目链接https://www.lanqiao.cn/problems/192/learning/

题目描述

数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中 N 个整数。

现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?

输入描述

输入的第一行包含一个整数 N。

第二行包含 N 个整数 A1,A2,··· ,AN。(注意 A1 ∼ AN​ 并不一定是按等差数列中的顺序给出)

其中,2<=N<= ,  0<=Ai<=

输出描述

输出一个整数表示答案。

输入输出样例

示例

输入

5
2 6 4 10 20

输出

10

样例说明: 包含 2、6、4、10、20 的最短的等差数列是 2、4、6、8、10、12、14、16、 18、20。

思路 

先排序然后找最大和最小值,找公差     求等差数列个数a[n-1]-a[0])/x+1

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
const int maxn=100010;
int cmp(const void*a,const void*b)   //排序从小到大
{return*(int*)a-*(int*)b;
}int main()
{int n,a[maxn];scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a[i]);}qsort(a,n,sizeof(int),cmp);       //从小到大排序int x=a[1]-a[0];for(int i=1;i<n-1;i++)           //找最小值x=fmin(x,a[i+1]-a[i]);if(x!=0) printf("%d",(a[n-1]-a[0])/x+1);else   printf("%d",n);return 0;
}

蓝桥杯专题(一)《C语言》相关推荐

  1. 【蓝桥杯专题】 贪心(C++ | 洛谷 | acwing | 蓝桥)

    菜狗现在才开始备战蓝桥杯QAQ 文章目录 [蓝桥杯专题] (C++ | 洛谷 | acwing | 蓝桥) 1055. 股票买卖 II AcWing 104. 货仓选址 传递糖果 AcWing 112 ...

  2. HAUT2021蓝桥杯专题练习第四周记录——贪心

    HAUT2021蓝桥杯专题练习第四周记录--贪心 贪心好难啊,证明啥都不会,全程膜拜大佬555 经过这次的练习也学到了很多吧,起码一些基础的贪心就知道了,但是吧,就这周说明白了是贪心还做不出来,更别说 ...

  3. 蓝桥杯2016年C语言B组-交换瓶子

    蓝桥杯2016年C语言B组 交换瓶子 代码 交换瓶子 有N个瓶子,编号 1 ~ N,放在架子上. 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置. 经过若干次后,使得瓶子的 ...

  4. 蓝桥杯第十届c语言试题答案,蓝桥杯试题答案(C语言)蓝桥杯试题答案(C语言).pdf...

    蓝桥杯试题答案(C语言)蓝桥杯试题答案(C语言) 1.亲密数:假设有a.b两个数,若a的所有因子之和等于b,b的所有因子之和等于a,并 且a不等于b,则称a和b是一对亲密数.如284和220就是一对亲 ...

  5. 蓝桥杯c语言校内选拔赛试题,2013年蓝桥杯校内选拔赛C语言B组.docx

    2013年蓝桥杯校内选拔赛C语言B组.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水 ...

  6. 2015年第七届蓝桥杯省赛C语言B组

    2015年第七届蓝桥杯省赛C语言B组 题目来源:蓝桥杯 作者:GGG166 第一题: 题目:奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就 ...

  7. 蓝桥杯软件类Java语言IDE(Eclipse)安装

    蓝桥杯软件类Java语言IDE(Eclipse)安装以及个性化设置 平时都在用idea搞工程类项目,正好报了下学期的蓝桥杯算法比赛,看到官网要求用eclipse编码,之前也参加过ccf-csp的比赛, ...

  8. 蓝桥杯-最大最小公倍数java语言

    蓝桥杯-最大最小公倍数java语言 开局一句话: 做这道题的时候,便没有对最小公倍数十分了解,就直接写了,也是惭愧,走了太多弯路,后来才知道,最小公倍数不是单单的几个数相乘就完了. 问题描述: 已知一 ...

  9. 2012年第三届蓝桥杯省赛C语言B组

    2012年第三届蓝桥杯省赛C语言B组 题目来源:蓝桥杯 作者:GGG166 第一题 题目:微生物增殖 假设有两种微生物 X 和 Y X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次( ...

  10. 蓝桥杯7届c语言 c组答案,第七届蓝桥杯C语言C组-(自己懂的题目)

    第七届蓝桥杯C语言C组-(自己懂的题目) 表示刚刚查了成绩,省赛一等奖,有资格去北京了,然后写一下总结, 先来写一下我懂的题目,毕竟我也是菜鸟,听说国赛比预赛难几个等级... 第一题 报纸页数 X星球 ...

最新文章

  1. 皮一皮:程序猿表示这点不够退休...
  2. HDU2085:核反应堆(递推)
  3. 阿里巴巴大规模应用Flink的踩坑经验:如何大幅降低 HDFS 压力?
  4. SAP CRM One Order scheduline buffer handling
  5. [.NET跨平台]Jexus独立版本的便利与过程中的一些坑
  6. DOM getElementById
  7. 腾讯视频上传视频如何同步到企鹅号
  8. Python之Hello World
  9. jenkins配置用户权限
  10. 5G时代,怎样的数据库才能满足金融领域快速发展的需求?
  11. 将long型转换为多少MB的方法
  12. 产品配件类目税目分类_2017年商品税收分类编码明细表
  13. 夏普ar2048s打印机驱动安装_驱动人生 下载安装打印机驱动的方法
  14. Android O、N版本修改dex2oat编译选项,减少占用ROM空间或者加快安装速度
  15. 专升本英语——语法知识——高频语法——第四节 定语从句(限制性定语从句-非限制性定语从句)【学习笔记】
  16. 20155327《Java程序设计》第八周学习总结
  17. Android相机开发和遇到的坑
  18. Spring声明式事务管理的配置详解
  19. Intel汇编-JMP无条件调转
  20. shutdown -h 20:30 AT 20:30 well be poweroff 命令

热门文章

  1. [附源码]Python计算机毕业设计SSM基于Java网上玩具商店(程序+LW)
  2. 你月薪8000还是月薪20000,又能怎样?
  3. IBM郭继军:机器学习配合行业经验将帮助企业成就未来
  4. 【科技与狠活】如何利用Python绘制足球场
  5. 微信公众号调用手机相册并将图片上传到本地服务器
  6. web项目PDF导出---freemarker 与 ITextRenderer--加页码
  7. 计算机建筑辅助设计判断题,18秋福师《计算机辅助设计—3DMAX》在线作业二【标准答案】...
  8. 爆笑谷经典对白(1)
  9. 官方 RabbitMQ 教程 - 7 Publisher Confirms
  10. rust机枪塔攻击模式_《辐射4》机枪塔介绍 全类型机枪塔伤害攻速