【蓝桥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

相关文章
|
存储 运维 关系型数据库
运维常见的22个故障排查和10个问题解决技巧大汇总!
运维常见的22个故障排查和10个问题解决技巧大汇总!
1806 0
|
4月前
|
机器学习/深度学习 存储 人工智能
图解人工智能的数学基础(线性代数)
本文系统讲解线性代数核心概念,涵盖向量(定义、几何/坐标表示、内积)、矩阵(含义、运算、秩、逆、相似、分解)、行列式(几何意义与变换关系)、线性方程组、特征值与特征向量、二次型、向量空间及范数等,强调其在AI与神经网络中的实际应用。
565 7
|
8月前
|
弹性计算 Kubernetes Go
零停机部署 Go 服务:用 Docker Compose + 滚动更新,上线如换轮胎不停车
本文详解Go服务如何通过Docker Swarm实现零停机滚动更新:依托Go静态编译、优雅关闭与健康检查优势,配合`docker stack deploy`的渐进式升级策略,确保用户无感、服务不中断。含完整代码、配置与验证方案。(239字)
737 0
|
7月前
|
监控 供应链 数据挖掘
淘宝商品详情API(taobao.item.get)场景说明
淘宝商品详情API(如taobao.item.get)通过提供商品全量结构化数据,已成为电商生态中连接数据与业务的核心枢纽,其业务场景覆盖电商运营、数据分析、供应链管理、营销推广等多个领域,以下从八大核心场景展开详细说明:
|
前端开发 机器人 API
答疑机器人实践:AgentScope多智能体带你玩转多源召回
答疑机器人实践:AgentScope多智能体带你玩转多源召回
900 3
答疑机器人实践:AgentScope多智能体带你玩转多源召回
|
机器学习/深度学习 人工智能 自然语言处理
《从语言学理论到自然语言处理:筑牢技术根基》
在人工智能时代,自然语言处理(NLP)技术如智能语音助手、机器翻译等深刻改变生活与工作方式。其背后离不开语言学理论支撑,包括句法学解析句子结构、语义学解锁语言意义、语用学融入语境理解。句法学通过依存关系分析帮助计算机识别语法成分;语义学利用语义角色标注和向量表示提升语义理解;语用学结合对话历史和背景知识,实现更自然的交互。语言学与NLP协同发展,共同推动技术进步。
544 48
|
JSON 数据格式
基于 PAI-ArtLab 使用 ComfyUI 生成服装面料迁移
本文介绍了通过PAI ArtLab平台将服装印花迁移到模特穿上的实验过程。首先,用户需登录阿里云并完成实名认证,访问PAI ArtLab平台领取免费试用资源。接着,在ComfyUI(专享版)中加载Json工作流文件,上传衣服版型、印花和模特图片,添加提示词队列等待生成结果。最后,提供了常见问题解答,如语言切换和任务进度查看方法。
|
监控 算法 物联网
院内导航怎么实现?解析信息化医院的智慧导航技术
智慧医院院内导航系统通过高精度电子地图、室内定位技术和路径规划算法,提升了医疗服务质量和患者就医体验。本文深入解析了院内导航技术的实现原理、应用案例及未来趋势,助力医院管理者和技术人员优化服务。文章最后可面查看详细医院院内导航解决方案
1121 2
院内导航怎么实现?解析信息化医院的智慧导航技术

热门文章

最新文章