pat的一道题,有2个测试点一直无法通过
高洛峰
高洛峰 2016-10-31 09:48:45
0
1
513

pat的一道题

1.png

提交之后有两个测试点过不去

1.png

我的代码如下

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);
    }
}

请问这是哪点没有通过呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

Antworte allen(1)
三叔

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage