Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
四次提交后AC, 记录一下前三次的错误原因第一次提交(没注意整数除法和浮点数除法的区别): 处理每个target时,i从1开始计数,从而sum每次加的是1/(i+1).由于i被声明为int类型,因此这里加的其实是1/2==0,即每次sum其实加的都是0,这也就是最后提交结果显示超时(Time limit exceeded)的原因. 修改:sum每次加1/(i+1.0). 第二次提交(解题逻辑错误, 输出格式错误): sum每次更新值后,i值没有相应的更新. 输出格式除了i的大小,后面还有加" card(s)"字样. 修改:sum值更新后,i自增1. 更新输出格式. 第三次提交(边界条件没弄清, scanf通配符错误): i从1开始,sum每次加的是1/(i+1.0),然后i++,随后再判断sum和target大小.这样导致循环退出时(即满足sum>=target),i的值多加了1.导致输出结果比预期结果大一. 另外,while循环里的scanf通配符写成了%d, 导致虽然第一个target能过,但后续的target都被截断成了整数,从而输出结果错误. 修改:i从0开始计数,内层循环中i先自增1,再更新sum. while循环里的scanf通配符改成%f. Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator