news 2026/4/23 15:28:08

2025.12.18代码分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2025.12.18代码分析

1.1题目

1.2代码

#include<stdio.h> long long ways(int n){ long long d[n+1]; d[0]=1; d[1]=1; for(int i=2;i<=n;i++){ d[i]=d[i-1]+d[i-2]; } return d[n]; } int main() { int t,i; scanf("%d",&t); int a[t],b[t]; for(i=0;i<t;i++){ scanf("%d %d",&a[i],&b[i]); } for(i=0;i<t;i++){ if(b[i]-a[i]==0){ printf("1\n"); continue; } printf("%lld\n",ways(b[i]-a[i])); } return 0; }

1.3解题思路

本题运用递归,根据wxs的位置和他宝贝的位置来计算路线。

1.在主函数前先定义一个递归找路线的函数,根据题目,wxs可以每次走过一个房间,也可以每次走过两个房间,那就需要不同的考虑,我们知道如果开始和结束位置中间没有房间,代表物品就在原地,那么只有一种方式(待在原地),如果有一个房间,那也只有一种方式。从中间房间是2开始,就要不同的考虑了,每次可以走一个或两个,那就将中间位置减1或2,再考虑前面的就行,然后递归找到中间房间是n的路线。

2.在主函数,先确定变量,注意,本题多组输入,那就需要数组来存储,利用循环输入数据。然后再调用函数来找路线。(代码里的continue是结束本次循环,进行下一次循环)。

综上所有代码完成之后,检查程序是否能够运行。

1.4总结

本题运用递归方法计算路线,其实遇到这样的题,做多点,后面就能想到这个方法。

2.1题目

2.2代码

#include<stdio.h> int ways(int m,int n){ if(m==0)return 1; if(n==0)return 0; if(n>m)return ways(m,m); return ways(m,n-1)+ways(m-n,n); } int main() { int t,i; scanf("%d",&t); int M[t],N[t]; for(i=0;i<t;i++){ scanf("%d %d",&M[i],&N[i]); } for(i=0;i<t;i++){ printf("%d\n",ways(M[i],N[i])); } return 0; }

2.3解题思路

递归考虑,从最后一个盘子开始,是有空盘还是没有空盘。

1.先定义一个函数,考虑前,先明确,如果物品M为0,那么只有一种放法,如果盘子N为0,那没有放法(没办法放),接下来就是,从最后一个盘子开始考虑,保留空盘还是不保留空盘,不保留,那就先将每个盘子填满,再放剩下的物品,保留空盘,并从最后一个盘子开始考虑,那就让那个盘子空着,将物品,放到前面的盘子里,注意思路,不是说只有最后一个盘子是空的,这个是在递归。

2.在主函数里,因为本题是多组数据输入,那么就需要利用数组来储存输入的数值。利用循环输入测试用例,然后再利用循环,遍历每组数据,在printf语句里直接调用定义的函数输出数值就可以了。

综上所有代码完成之后,检查程序是否能够运行。

2.4总结

本题的递归思路是常见的,可以在写题的时候仔细读题。

3.1题目

3.2代码

#include<stdio.h> int main() { char s[7]; char t[7]; scanf("%s",s); scanf("%s",t); long long a=1; for(int i=0;s[i]!='\0';i++){ a=a*(s[i]-'A'+1); } long long b=1; for(int i=0;t[i]!='\0';i++){ b=b*(t[i]-'A'+1); } if(a%47==b%47){ printf("GO"); } else printf("STAY"); return 0; }

3.3解题思路

这个题是需要我们确定彗星名字和团体名字里每个字符代表的数值,在每个名字里将这些数值相乘,然后判断他们和乘积%47是否相等。(mod代表%)

1.首先输入彗星和团体的字符串,注意不超过6个字符,那么定义字符串长度为7(加上结束符'\0'),接下来分别计算乘积,由于我们输入的是字符串,字符串里面是字符,那么我们要计算的话就需要将字符转化为数字来计算,可以利用特定的方法,这里是减去'A’再+1(相当于数值没变,但是转换了),对于字符串里的每个字符都这么计算,之后将每个字符代表的数值相乘就可以了。确定两个字符串的结果后,将他们分别%47来比较,根据结果来写输出语句。

综上所有代码完成之后,检查程序是否能够运行。

3.4总结

本题是考察字符与数字之间的转换。

4.1题目

4.2代码

#include<stdio.h> struct student{ char name[25]; int f; int c; char x; char y; int e; }; int main() { int N,i,total=0; scanf("%d",&N); int b[N]; struct student a[N]; for(i=0;i<N;i++){ scanf("%s %d %d %c %c %d",a[i].name,&a[i].f,&a[i].c,&a[i].x,&a[i].y,&a[i].e); } for(i=0;i<N;i++){ b[i]=0; if((a[i].f>80)&&(a[i].e>=1))b[i]+=8000; if((a[i].f>85)&&(a[i].c>80))b[i]+=4000; if(a[i].f>90)b[i]+=2000; if((a[i].f>85)&&(a[i].y=='Y'))b[i]+=1000; if((a[i].c>80)&&(a[i].x=='Y'))b[i]+=850; total+=b[i]; } int max=0; for(i=1;i<N;i++){ if(b[i]>b[max])max=i; } printf("%s\n%d\n%d\n",a[max].name,b[max],total); return 0; }

4.3解题思路

本题利用结构体来解题,后续根据题目意思来写条件语句。

1.先定义一个结构体,里面包括学姓名,期末平均成绩,班级评议成绩,是否是学生干部,是否是西部省份学生,以及发表的论文数。注意结构体格式,以及变量类型。

2.在主函数里先确定变量,根据结构体的变量输入相应的数据,注意结构体变量的输出,并且数据有多组。然后根据条件来计算每个人获得的奖金总额,并且每个人的奖金总额需要加起来,后续需要输出,之后需要找到奖金总额最多的那个人,那么假设是第一个,然后用后面的去比较,注意题目(如果有两位或两位以上的学生获得的奖金最多,输出他们之中在输入文件中出现最早的学生的姓名),但是代码也考虑了,只有严格大于最大数,才能更新最大值的下标。之后输出奖金总额最多的人的名字以及他的奖金总额,还有所有人的奖金总和,注意换行。

综上所有代码完成之后,检查程序是否能够运行。

4.4总结

本题运用结构体来计算,注意结构体的定义以及运用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 16:03:38

Jmeter 命令启动-动态参数化

Jmeter命令行参数 1、在Linux中&#xff0c;使用非GUI的方式执行Jmeter。若需更改参数&#xff0c;必须先编辑jmx文件&#xff0c;找到对应变量进行修改&#xff0c;比较麻烦。 因此&#xff0c;可以参数化一些常用的变量&#xff0c;直接在Jmeter命令行进行设置 2、参数 -J…

作者头像 李华
网站建设 2026/4/21 7:53:52

从基础到多模态:Llama-Index RAG 七大企业级落地场景实战

七大场景 企业级RAG检索实战&#xff08;附源码&#xff09; RAG 落地生产环境&#xff0c;如何解决 “检索准确性”&#xff08;事实一致性/语境完整性/领域术语召回&#xff09;和 “多模态解析”&#xff08;PDF 图表、图片甚至视频&#xff09;两大难题&#xff1f; 本文通…

作者头像 李华
网站建设 2026/4/18 23:31:16

光伏并网系统的仿真就像搭积木,每个模块看似独立却又环环相扣。今天咱们直接上手拆解这个光伏三相并网Simulink模型,顺便聊聊那些藏在模块背后的“骚操作

光伏三相并网Simulink仿真模型&#xff08;光伏并网仿真模型&#xff09; 电路包括五个主要模块&#xff1a;PV光伏阵列Boost DC/DC 变换器三相逆变器L型滤波器交流电网&#xff1b; 控制系统包括&#xff1a;MPPT控制系统交流电网侧逆变器控制系统&#xff1b; 基本工作过程 1…

作者头像 李华
网站建设 2026/4/23 14:01:02

Hyperledger Fabric与 FISCO BCOS深度对比

一、核心架构与设计哲学对比 Hyperledger Fabric&#xff08;Linux基金会主导&#xff09; 设计理念&#xff1a;模块化、可插拔的企业级区块链 架构特点&#xff1a; ├── 通道机制&#xff08;数据隔离&#xff09; ├── 可插拔共识&#xff08;Kafka/Raft&#xff09; ├…

作者头像 李华
网站建设 2026/4/17 6:57:20

30、ImageMagick:强大的图形文件处理工具

ImageMagick:强大的图形文件处理工具 在图形处理的领域,ImageMagick 是一款功能强大但使用起来颇具挑战的工具。下面将介绍几个使用 ImageMagick 完成不同图形处理任务的脚本。 1. 水印添加脚本 水印添加是保护图片版权的常用手段,以下是实现该功能的脚本: newfilenam…

作者头像 李华
网站建设 2026/4/13 2:28:03

python-uniapp微信小程序的自助自习室预约选座系统的设计与实现_7r4zk039

文章目录系统截图项目技术简介可行性分析主要运用技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统截图 python-uniapp_7r4zk039 微信小程序的自助自习室预约选座系统的设计与实现 项目技术简介 Pyth…

作者头像 李华