【蓝桥OJ】门牌制作、七段码、成绩统计、分数

简介: 例如c发光,其他二极管不发光可以用来表达一种字符,这种方案与上 一行的方案可以用来表示不同的字符,尽管看上去比较相似。

门牌制作


小蓝要为一条街的住户制作门牌号。这条街一共有 2020位住户,门牌号从 1 到 2020 编号。小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1 个字符 7。请问要制作所有的 1 到2020 号门牌,总共需要多少个字符 2?


#include <stdio.h>
#include <stdlib.h>
int main(){
  int i;
  int count = 0;
  for(i = 1;i<2021;i++){
    for(int j=i;j>0;j = j/10){
      if(j%10==2){
        count++;
      }
    }
  }
  printf("%d",count);
  return 0;
} 


七段码


小蓝要用七段码数码管来表示一种特殊的文字。


62c344578ea143308158d23c75bb3264.png


上图给出了七段码数码管的一个图示,数码管中一共有7段可以发光的二极管,分别标记为a,b,c,d,e,f,g。小蓝要选择一部分二极管(至少有一个)发光来表达字符,在设计字符的表达时,要求所有发光的二极管是连成一片的。


例如:b发光,其他二极管不发光可以用来表达一种字符。


例如c发光,其他二极管不发光可以用来表达一种字符,这种方案与上 一行的方案可以用来表示不同的字符,尽管看上去比较相似。


例如:a,b,c,d,e 发光,f,g 不发光可以用来表达一种字符。


例如:b,f 发光,其他二极管不发光则不能用来表达一种字符,因为发光 的二极管没有连成一片。


请问,小蓝可以用七段码数码管表达多少种不同的字符?


这题应该用DFS搜索,由于是填空题,所以小编是直接排列组合解决的。


#include <stdio.h>
#include <stdlib.h>
int main(){
  int count = 0;
  int l1,l2,l3,l4,l5,l6,l7;
//  一个二极管发光:a,b,c,d,e,f,g
  l1 = 7;
//  2个二极管发光,排除组合后相同的形状:ab,ac,af,bc,be,bg,ce,cf,df,dg
    l2 =  10;
//    3个二极管发光,排除组合后相同的形状:abc,abd,abe,abf,abg,acd,ace,acg,adg,afg,bcd,bce,beg,bfg,cfg,efg
l3 = 16;
//4个二极管发光,等同于灭3个二极管
l4 = 20;
l5 = 19;
l6 = 7;
l7 =1;
count = l1 + l2 + l3 + l4 + l5 + l6 + l7;
printf("%d\n",count); 
  return 0;
}


成绩统计


小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整数。


输入描述


输入的第一行包含一个整数 n (1≤n≤10^4 ),表示考试人数。接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。


输出描述


输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
  int num=0; //考试人数
  int arr[100001]={0};//考试成绩数组
  int jg=0,yx=0;//定义及格和优秀的人数
  scanf("%d",&num); //输入考试人数
  for(int i = 0;i<num;i++){ 
    scanf("%d",&arr[i]); //输入成绩数组
    if(arr[i]>=60)
    jg++; //如果第i个学生的成绩大于等于60,则及格人数增加
    if(arr[i]>=85)
    yx++; //如果第i个学生的成绩大于等于85,则优秀人数增加
  }
  printf("%.0f%\n",(jg*100)/(num*1.0)); //输出及格率,.0f保证四舍五入
  printf("%.0f%\n",(yx*100)/(num*1.0)); //输出优秀率
  return 0;
}


分数


1/1+1/2+1/4+1/8+…


每项是前一项的一半,如果一共有 20 项,求这个和是多少,结果用分数表示出来。


类似:3/2,当然,这只是加了前 2 项而已。分子分母要求互质。


思路: 先用等比数列求和公式进行计算,即n=20,公比q=1/2,前n项和为S=[a1(1-q^n)]/(1-q)。代入计算结果为(2 ^20 -1)/(2 ^19)。所以分子为2 ^20-1,分母为2 ^19。


知识点: C语言的pow函数:使用pow函数需要引入头文件#include <math.h>,pow(a,b)意思为计算a的b次方。


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
  int fenzi=pow(2,20)-1;
  int fenmu=pow(2,19);
  printf("%d/%d",fenzi,fenmu);
  return 0;
}


总结


以上就是今天的学习内容啦~

如果有兴趣的话可以订阅专栏,持续更新呢~

咱们下期再见~


32fcb6e25c2d4ea0920d8273377dc090.gif

相关文章
|
监控 Python
logging的基本使用教程
这篇文章提供了Python `logging` 模块的基本使用教程,包括如何配置日志级别和格式、记录不同级别的日志消息,以及如何将日志输出到文件。
|
11月前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评。然而,“客户端不发送心跳检测”是使用中常见的问题之一。本文详细探讨了该问题的原因及解决方法,包括检查客户端配置、网络连接、日志、版本兼容性、心跳检测策略、服务实例注册状态、重启应用及环境变量等步骤,旨在帮助开发者快速定位并解决问题,确保服务正常运行。
194 5
|
小程序 开发工具 Android开发
微信小程序开发工具的使用,各个配置文件详解,小程序开发快速入门(二)
微信小程序开发工具的使用,各个配置文件详解,小程序开发快速入门(二)
1017 0
|
开发者 Ruby
Ruby正则表达式的奥秘:如何用简单的语法构建强大的文本匹配与处理工具?
【8月更文挑战第31天】正则表达式是文本匹配的强大工具,通过简单模式即可实现复杂文本处理。作为动态、面向对象的语言,Ruby提供了全面的正则表达式支持,涵盖创建、匹配、替换及分割等功能。本文通过示例代码介绍如何在Ruby中使用正则表达式进行文本匹配,并分享了编写正则表达式的最佳实践,帮助开发者提升文本处理效率与准确性,更好地利用这一工具构建高效系统。
101 0
|
存储 大数据
大数据数据存储的分布式文件系统的HDFS的核心机制理解的数据复制和原理
在 Hdfs 中,数据的复制和原理是基于块的分布式存储。
212 1
|
算法 数据可视化 数据挖掘
【目标检测】目标检测界的扛把子YOLOv5(原理详解+修炼指南)
Yolov5官方代码中,给出的目标检测网络中一共有4个版本,分别是Yolov5s、Yolov5m、Yolov5l、Yolov5x四个模型。 学习一个新的算法,最好在脑海中对算法网络的整体架构有一个清晰的理解。 但比较尴尬的是,Yolov5代码中给出的网络文件是yaml格式,和原本Yolov3、Yolov4中的cfg不同。 因此无法用netron工具直接可视化的查看网络结构,造成有的同学不知道如何去学习这样的网络。
4947 0
【目标检测】目标检测界的扛把子YOLOv5(原理详解+修炼指南)
|
JavaScript 测试技术
Easyui datagrid 修改分页组件的分页提示信息为中文
Easyui datagrid 修改分页组件的分页提示信息为中文
192 0
|
安全 Unix 大数据
1.6 为什么要学Linux,它比Windows好在哪里?
早在 20 世纪 70 年代,UNIX 系统是开源而且免费的,但是在 1979 年时,AT&T 公司宣布了对 UNIX 系统的商业化计划,随之开源软件业转变成了版权式软件产业,源代码被当作商业机密,成为专利产品,人们再也不能自由地享受科技成果。
375 0
1.6 为什么要学Linux,它比Windows好在哪里?
|
新零售 大数据 云计算
一张图看懂阿里巴巴商业操作系统
2019阿里巴巴ONE商业大会在杭州召开。会上,清晰明了的介绍了阿里巴巴商业操作系统。
28230 0
|
区块链 供应链
区块链开发公司如何实现价值?企业发展方向在哪?
尚未明确区分的热点市场,对谁都是相同的起跑线,只需借助区块链开发公司的技术支撑,就能切入市场,大家都能合理的借区块链开发创造人生财富、实现社会价值!
1494 0