20170812

分享了一次编程解题的经历,特别是针对二分法的调试过程,从错误中学习并最终解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      今天做了不少的题,当然对的错的都有。尤其是下午吧,开始的时候不能交题,就只好一个劲的写,然后呢,一会一个一会一个写得很轻松,结果一下子就写了四个。当时我一看不能再写了,写的这么快那肯定是有毛病啊。可是又不能交,我自己看过来看过去觉得挺好的,想改个错也无从下手啊,难受的我不行。到五点多能交的时候,挨个上去,对了一个,,,还好还对了一个啊。周六,一般晚上洗澡休息的,没再去,这吃完饭回到了宿舍玩个游戏吧看个有嘻哈吧啥都没兴趣,算了,看看我那三道题。知道错了以后有一道题看了看就知道想简单了,方法就不对,在看其他的。这道二分怎么能错呢,这公式啥的完全没毛病啊,输出left还是right还是mid?挨个试一圈,都没对(后来证明right对,但是开始用的cincout),再搜搜题解,看到一个是这样的: if( judge(mid) { right=mid-1;  ans=mid;   }   else {   left=mid+1; }     最后  printf("%d\n",ans);。我试了试对了。理解了一下,应该就是当mid太小,right缩小逼近的时候,ans才会变换成mid,而当mid太大,left扩大来逼近的时候,ans是不变的,保持上一次的值。而想了又想,这个操作大概也就等同于输出right吧这时候我有把开始的代码换成right,也对了。这算是明白了错的地方。但是再回到该输出什么这个地方,还是很懵懂。更不用说加个ans这个操作,让我想实在想不出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值