news 2026/4/16 10:44:14

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/16 10:21:08

深入解析: RISC-V的 PLIC的初始化流程

平台级中断控制器(PLIC)是RISC-V系统中管理外部中断的核心组件,负责将中断路由到适当的CPU核心。本文将深入剖析PLIC的工作原理和正确的初始化顺序。 简单理解PLIC是什么 PLIC就是一个中断调度中心,它有四个主要工作: 给中断排优先级:为不同中断源分配优先级 开关控制:…

作者头像 李华
网站建设 2026/4/15 17:26:16

年终总结PPT神器横评:为什么ChatPPT是2025年当之无愧的效率之王?

白领年终总结PPT神器横评&#xff1a;为什么ChatPPT是2025年当之无愧的效率之王&#xff1f; 作为一名饱受年终总结折磨的职场人&#xff0c;每年12月最头疼的不是业绩复盘&#xff0c;而是要把几十页的数据、文档变成“老板看得懂、同事觉得专业”的PPT。今年我横评了市面10余…

作者头像 李华
网站建设 2026/4/15 18:00:43

专项智能练习(天文历法)

1.“春雨惊春清谷天&#xff0c;夏满芒夏暑相连。秋处露秋寒霜降&#xff0c;冬雪雪冬小大寒”&#xff0c;在这首节气歌中提到的“冬至”是在农历&#xff08;B &#xff09;。A.十月 B.十一月 C.十二月 D.正月 立春 雨水 惊蛰 春分 清明 谷雨 立夏 小满 芒种 夏至 …

作者头像 李华
网站建设 2026/4/15 11:11:07

GPPR (General-Purpose Pre-Retrieval Method)-通用预训练检索方法

1. GPPR 的核心身份&#xff1a;它是谁&#xff1f; 全称&#xff1a; General-Purpose Pre-Retrieval Method&#xff08;通用预训练检索方法&#xff09;。 对应模型&#xff1a; 在学术界&#xff0c;这通常指的是像 Contriever (Contrastive Retriever) 1 这类模型。本文引…

作者头像 李华
网站建设 2026/4/10 11:24:03

Vue3 热力图

效果图&#xff1a; 配置 <template><v-chart ref"vChartRef" :option"option"></v-chart> </template><script setup lang"ts"> import { ref, reactive } from "vue"; import VChart from "vue…

作者头像 李华