想说说关于在刷题网站(牛客 、C语言网、力扣)上测试样例过了但是OJ判错这档子事

简介: 想说说关于在刷题网站(牛客 、C语言网、力扣)上测试样例过了但是OJ判错这档子事

1.话题引入


首先介绍一下我自己,本人是一名专科大一的学生;非计算机本专业;因为想拓宽自己的知识面和技术;于是就开始了现在C语言的学习,目前差不多已经学了三个月的样子,刚开始就有人在劝我放弃学习这门编程语言,可我不学他能给我好的工作吗??答案肯定是不能啊,专科在学历鄙视链的最底层,也是现在的现状。三个月之前我连一个最基本的Hello world都要打半天,好在现在我坚持下来了,并没有放弃学习编程。一些C语言的题也刷了不少,在这里我想问问大家,我们为什么要刷题??刷这些题有什么用??对编程能力也没有提升??我的答案肯定是都对自己有帮助,计算机是一门在做中学的学科;实践性很强。


我们现在来到正题,你们在刷题的过程中,也没有遇到如下情况(我用的是C语言网):


1.内存超时

d376c6931da940c08ceabf3565406e7e.png


2.样例通过OJ判错


05a247b81a7943d98b53a7f27564a112.png


8da6675f0d754079a75b5217d482c803.png


2.在刷题过程中一些自己想说的


   说的东西也不多,只是想说一说自己在做这些编程题时的感受;我已经在C语言网刷了差不多两三个星期的题了;也差不多就过了五十个题目,不多不少也就那么一点点;下图是我的刷题数据

021bceae424b423e95300096fb4b26d2.png


那红色的部分都是我这几天提交的错误的百分比,主要是自己条件没考虑的那么到位导致错了那么多 。我说一下自己为什么会错这么多,第一个诟病自己的地方主要是太粗心了然后没注意输出格式结果就错了(输出是对的,因为少了一个百分号导致错误);然后第二个点在只为了过测试样例而忽略了其他的情况,代码需要大量情况都通用oj才能通过(不止一组测试样例,有十几组甚至更多),我举一个栗子、


题目描述:


这是一个有趣的古典数学问题,著名意大利数学家Fibonacci曾提出一个问题:有一对小兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。按此规律,假设没有兔子死亡,第一个月有一对刚出生的小兔子,问第n个月有多少对兔子?


输入

输入月数n(1<=n<=44)。

输出

输出第n个月有多少对兔子。


样例输入 Copy

3

样例输出 Copy

2


大家看到这个第一反应是不是斐波那契数列,它的规律是1,1,2,3,5,8,13,21.也就是从第三个数开始,后面的数等于前面两数之和;那么有了思路就很简单了

我们直接上代码

#include <stdio.h>
#include <string.h>
int main()
{
  int n = 0;
  scanf("%d", &n);
  int b = fib(n);
  printf("斐波那契数列第%d位是%d", n,b);
  return 0;
}


我们测试一下,我们输入 一个  9


b3b71fbeccdb4068a9083138af276459.png

可以看到输出 34  

这是数据小的情况,那假如说我们输入一个1600呢,是不是觉得数字非常的大,特大的那种;好,让我们看看它的输出结果


c5cf64777fb942fa9a6c999ba52fcbd3.png


你会看到它输出的是一个英文字母,这个词在C语言中代表的意思是溢出;所以它现在这个int类型的数据装不下了,已经超过了2的三十二次方;所以我想说在数据特别大的时候不要用int类型的数据而我们应该换成long long 这样能满足大部分的情况,从而程序也就不会那么容易出bug,这是一个特别要注意的点。为什么我要举这么一个例子呢,因为大部分的错误是因为这个问题导致的,改代码的时候差点把键盘砸了(这是真的),找不到bug而又找不出原因的样子真的很苦恼,有些小伙伴自己去刷题就懂这种感受了,明明测试样例过了,为什么我的程序还是错误的呢??这个时候你就会跟我一样了,焦头烂额,找不到问题。结果是因为数据太大,说完这个问题,还有一个就是写代码的时候一定要细心啊,磨刀不误砍柴工;写代码急不得,可能因为一个变量打错了就导致整体就全错了;我给你们看看我这两天遇到的一个问题,还是一位好兄弟帮我解决的


下面是改代码的全经过

40b1028553c14912a06ecf63c6b7a268.png


16afdf6887eb4b4fb744d7c4be529392.png


7cf58e956eeb4a3289f69a26bb33760a.png

c4e2c4b4dda544ed9707e892c8c54aa8.png

当时改了好几遍才发现是因为数组的下标打错字母了,我自己没发现这个问题所以一直是错的,这个地方改完差点给自己气死了。所以我们在写代码的时候一定要细心,不能在这些小细节上出问题。有些同学应该跟我一样,就知道第一时间写代码而忘记了代码的完整性;


3.刷题时的一些小建议


对于刷题的话,我个人用的是C语言网这个刷题网站,不知道有没有和我用同一个OJ的,我知道也有同学用比如牛客,洛谷,力扣,avcing等的刷题网站。首先呢牛客比较适合那些找工作的同学,如果是为了求职的话,刷力扣比较好。里面的算法题基本上很全面,都覆盖到了;如果想深入算法的学习可以用洛谷和acving这两个网站,有很多算法选手都是在这里面锻炼自己的算法水平。具体用哪个还是要各位同学自己去选择,个人还是希望各位同学根据自己的实际情况来选择网站。然后就是先刷水题,刚开始不要刷太难的题,做不出会打击自己自信心!!


  • 注意细节
  • 不要粗心
  • 多刷题
  • 多总结


4.个人感悟


(这个地方应该是灌鸡汤的),刷题已经刷了差不多一个月了,学习的非常充实,起码还没被难题难倒。这段时间实在是太痛苦了,有些题实在是太难了,自己做不出来。当然自己努力也算其中的一部分,大部分只能好好加油了,在接下来的时间我会坚持刷题,努力提升自己的编程能力,分享自己的知识和见解给大家。然后一起努力,一起成长!!

我是会敲代码的史蒂夫,很高兴遇见你!!

2f5205098bd1457180e569778380314c.jpg


相关文章
|
6月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
6月前
|
人工智能 数据可视化 API
10 分钟构建 AI 客服并应用到网站、钉钉或微信中测试评
10 分钟构建 AI 客服并应用到网站、钉钉或微信中测试评
185 2
|
7月前
|
存储 C语言
【C语言】基础刷题训练4(含全面分析和代码改进示例)
【C语言】基础刷题训练4(含全面分析和代码改进示例)
|
7月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
165 2
|
4月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
107 1
|
4月前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
111 2
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
280页PDF,全方位评估OpenAI o1,Leetcode刷题准确率竟这么高
【10月更文挑战第24天】近年来,OpenAI的o1模型在大型语言模型(LLMs)中脱颖而出,展现出卓越的推理能力和知识整合能力。基于Transformer架构,o1模型采用了链式思维和强化学习等先进技术,显著提升了其在编程竞赛、医学影像报告生成、数学问题解决、自然语言推理和芯片设计等领域的表现。本文将全面评估o1模型的性能及其对AI研究和应用的潜在影响。
114 1
|
6月前
|
数据采集 负载均衡 安全
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
本文提供了多个多线程编程问题的解决方案,包括设计有限阻塞队列、多线程网页爬虫、红绿灯路口等,每个问题都给出了至少一种实现方法,涵盖了互斥锁、条件变量、信号量等线程同步机制的使用。
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
|
5月前
|
程序员 C语言
【C语言】LeetCode(力扣)上经典题目
【C语言】LeetCode(力扣)上经典题目
|
5月前
|
C语言
【C语言的完结】:最后的测试题
【C语言的完结】:最后的测试题
30 3

热门文章

最新文章