社区
C语言
帖子详情
if求解释
l369294289
2011-11-24 10:28:25
if(b*b-4*a*c > 0) 和 if(b*b > 4*a*c)有什么不同,为什么在oj上写成前一种能过,写成后一种就WA了?
...全文
263
25
打赏
收藏
if求解释
if(b*b-4*a*c > 0) 和 if(b*b > 4*a*c)有什么不同,为什么在oj上写成前一种能过,写成后一种就WA了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
l369294289
2011-11-25
打赏
举报
回复
[Quote=引用 21 楼 pengzhixi 的回复:]
引用 19 楼 l369294289 的回复:
引用 18 楼 pengzhixi 的回复:
前面一个可能会超出Int的表示范围,比如4*a*c是一个绝对值很大的负数,b*b也是一个很大的正数,那么b*b-4*a*c那么就可能非常的的正数超出int的表示范围。
呵呵~好吧~我发现我真的好笨额~
额,这个属于一些细节东西,不是笨不笨的问题,一般很少会注意到而已。
[/Quote]
其实,做OJ上的题,特别是简单题,一般都要考虑到有卡数据的情况,这么明显我却没想到,确实是我二了。
l369294289
2011-11-25
打赏
举报
回复
[Quote=引用 20 楼 pengzhixi 的回复:]
当上溢的时候那么可能就会得到一个负数,那么b*b-4*a*c>0就得到相反的结论。
[/Quote]
恩恩,以后有什么问题还请大侠多多指教~
pengzhixi
2011-11-25
打赏
举报
回复
[Quote=引用 19 楼 l369294289 的回复:]
引用 18 楼 pengzhixi 的回复:
前面一个可能会超出Int的表示范围,比如4*a*c是一个绝对值很大的负数,b*b也是一个很大的正数,那么b*b-4*a*c那么就可能非常的的正数超出int的表示范围。
呵呵~好吧~我发现我真的好笨额~
[/Quote]
额,这个属于一些细节东西,不是笨不笨的问题,一般很少会注意到而已。
pengzhixi
2011-11-25
打赏
举报
回复
当上溢的时候那么可能就会得到一个负数,那么b*b-4*a*c>0就得到相反的结论。
l369294289
2011-11-25
打赏
举报
回复
[Quote=引用 18 楼 pengzhixi 的回复:]
前面一个可能会超出Int的表示范围,比如4*a*c是一个绝对值很大的负数,b*b也是一个很大的正数,那么b*b-4*a*c那么就可能非常的的正数超出int的表示范围。
[/Quote]
呵呵~好吧~我发现我真的好笨额~
pengzhixi
2011-11-25
打赏
举报
回复
前面一个可能会超出Int的表示范围,比如4*a*c是一个绝对值很大的负数,b*b也是一个很大的正数,那么b*b-4*a*c那么就可能非常的的正数超出int的表示范围。
l369294289
2011-11-25
打赏
举报
回复
[Quote=引用 16 楼 pengzhixi 的回复:]
你这不就是因为这个可能性引起的。size()返回的应该就是unsigned int 两者相减的话,即使小的减大的 就会出现问题,比如2-4结果肯定是大于1的。
[/Quote]
恩恩~发现了额~我书都白看了~谢谢~
但是这一个if(b*b-4*a*c > 0) 和 if(b*b > 4*a*c)有什么不同?a,b,c都是我定义的int型。
pengzhixi
2011-11-25
打赏
举报
回复
你这不就是因为这个可能性引起的。size()返回的应该就是unsigned int 两者相减的话,即使小的减大的 就会出现问题,比如2-4结果肯定是大于1的。
l369294289
2011-11-25
打赏
举报
回复
[Quote=引用 9 楼 anyidan 的回复:]
引用 6 楼 pengzhixi 的回复:
因为如果两个unsigned相减或者 一个Int,一个unsigned相减得到的结果永远大于0
应该是 前一种不能过,写成后一种就能过了
前一种可能溢出
[/Quote]
我之前也觉得while ( big.size () > sml.size () + 1 )这种会溢出,但是这种可以AC,改成后面一种就会WA
l369294289
2011-11-25
打赏
举报
回复
[Quote=引用 8 楼 keiy 的回复:]
如果都是int的话,看不出有什么区别
从汇编角度,前者只是多用了个减法运算
[/Quote]
呵呵~我们都这么认为~学长称这是人品题。哈哈~
l369294289
2011-11-25
打赏
举报
回复
[Quote=引用 6 楼 pengzhixi 的回复:]
因为如果两个unsigned相减或者 一个Int,一个unsigned相减得到的结果永远大于0
[/Quote]
这个我知道,可是不是因为这个引起的。我也不知道为什么。求大侠解释
http://www.miyub.com/2011/11/11/a-b-1-%e4%b8%8e-a-b-1-uva-10107-what-is-the-median.htm
lancerEx
2011-11-25
打赏
举报
回复
[Quote=引用 9 楼 anyidan 的回复:]
引用 6 楼 pengzhixi 的回复:
因为如果两个unsigned相减或者 一个Int,一个unsigned相减得到的结果永远大于0
应该是 前一种不能过,写成后一种就能过了
前一种可能溢出
[/Quote]
我也觉得应该是这样,LZ是不是写错了
刀刀亮
2011-11-25
打赏
举报
回复
[Quote=引用 8 楼 keiy 的回复:]
如果都是int的话,看不出有什么区别
从汇编角度,前者只是多用了个减法运算
[/Quote]
牛人思考层面就是不一样
w28050
2011-11-25
打赏
举报
回复
好吧,说实话,这题我不会,不解释。
槑党--一缕风
2011-11-25
打赏
举报
回复
说实话,这题我不会,不解释。
子牙河畔
2011-11-25
打赏
举报
回复
区别不大,主要是你使用的软件的问题,你用别的软件试试就知道了。
AnYidan
2011-11-24
打赏
举报
回复
[Quote=引用 6 楼 pengzhixi 的回复:]
因为如果两个unsigned相减或者 一个Int,一个unsigned相减得到的结果永远大于0
[/Quote]
应该是 前一种
不
能过,写成后一种就
能过
了
前一种可能溢出
柯本
2011-11-24
打赏
举报
回复
如果都是int的话,看不出有什么区别
从汇编角度,前者只是多用了个减法运算
走在路上的人吧
2011-11-24
打赏
举报
回复
[Quote=引用 6 楼 pengzhixi 的回复:]
因为如果两个unsigned相减或者 一个Int,一个unsigned相减得到的结果永远大于0
[/Quote]
++
pengzhixi
2011-11-24
打赏
举报
回复
因为如果两个unsigned相减或者 一个Int,一个unsigned相减得到的结果永远大于0
加载更多回复(5)
python中if语句
求
最大值_python 条件控制 if语句
python 条件控制 if语句python编程中 if语句用于控制程序的执行, if分支使用布尔表达式或布尔值作为分支条件来进行分支控制, if关键字后面的表达式如果为真,则进入到if语句块执行代码, 程序通过if语句中对条件表达式的判断进入到不同的逻辑分支中。1. if 语句最简单的if条件语句结构如下if condition:blockcondition 是一个表达式如果condition等...
c语言if函数的作用是什么意思,if是什么意思_if,意思_词汇大全意思全集
概括:本文是早旭阅读网网友分享的词汇大全,专注各种词汇
解释
,分享网络词语的意思,助你增长知识。if是什么意思:if是什么意思?conj. 是否;如果;即使;每当n. 条件;设想if作为从属连词,可引导条件状语从句、让步状语从句和名词从句。if引导条件状语从句,从句可为真实条件从句,也可为虚拟条件从句。如为真实条件从句,谓语用陈述语气,表示可能性很大,作“假使”“如果”解,通常用一般现在时代替一般将...
c语言中if内函数值为零,C语言——if(0)之后的语句真的不会执行吗?
1、序学过c语言的都知道,通常:If(0)之后的代码是不执行的,网上也有详细的说明。1.1、形式:if (表达式) {语句… }1.2、
解释
:在执行if语句时,首先会计算表达式的值,如果表达式的值为零,语句不会执行,若非零,则执行语句。由此可见if (0)表示不执行,if (1)表示要执行。if (x)根据x的值是否为0来决定是否执行,他等价于if (x != 0)。if语句中的条件无论是什么...
C语言if else语句详解
前面我们看到的代码都是顺序执行的,也就是先执行第一条语句,然后是第二条、第三条……一直到最后一条语句,这称为顺序结构。 但是对于很多情况,顺序结构的代码是远远不够的,这时我们就要使用判断语句即if else语句。 在C语言中,使用if和else关键字对条件进行判断。请先看下面的代码: #include <stdio.h> int main() { int age; printf(“请...
Nginx “If Is Evil“详解,以及if使用须知
nginx if 语句其实是 rewrite的一部分,我们在配置nginx时,需要明白if的一些特点。 有关被 nginx 官方自我批判的 if 语句,《If Is Evil》—— 着实应成为每位开发者初次使用 nginx if 之前必读的文章。 即使笔者一年前就开始接触使用 nginx 和 if 的组合做 url 跳转,但涉及的功能太简单,一直没能见识到它的真面目。直到近期在多个 if 内处理 proxy_pass 时,噩梦果真就降临了……希望大家仔细阅读上面的文章,引以为戒。 如果想快速知道.
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章