为了账号安全,请及时绑定邮箱和手机立即绑定

pat的一道题,有2个测试点一直无法通过

pat的一道题,有2个测试点一直无法通过

回首忆惘然 2019-03-28 16:18:33
pat的一道题提交之后有两个测试点过不去我的代码如下import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        String s = in.next();        double fu = 0,ou = 0,a_2 = 0;        int i = 0;        if(s.charAt(0)==45){            //如果是负数            fu = 0.5;        }        while(i<s.length()){            //判断2 的个数            if((s.charAt(i)-48)==2){                a_2++;            }            i++;            }        if(s.charAt(s.length()-1)%2==0){            //如果是偶数            ou = 1.0;        }        double fan2 = 0;        if(fu==0){//正数            fan2 = a_2/((double)(s.length()));                            }else{//负数                    fan2 = a_2/(s.length()-1)*(ou+fu);        }        //测试2的个数/总字符串长度的值        System.out.println(fan2);        System.out.printf("%.2f%%",fan2*2*100);    }}请问这是哪点没有通过呢?
查看完整描述

3 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

题主没看清题意,负数是增加0.5倍,要乘以1.5,偶数是增加1倍,要乘以2.
fan2 = a_2/(s.length()-1)*(ou+fu); // 你这比例因子乘对了吗?
还有正数也可以是偶数,都不知道你其他case是怎么通过的

查看完整回答
反对 回复 2019-04-25
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

补充一点:如果第一位是负号,那么需要从第二位开始计算是否为2,以及数字的位数


查看完整回答
反对 回复 2019-04-25
  • 3 回答
  • 0 关注
  • 546 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信