猿问

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

pat的一道题

提交之后有两个测试点过不去
https://img1.mukewang.com/5cc16e290001046f07890530.jpg

我的代码如下

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

    }

}

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

回首忆惘然
浏览 547回答 3
3回答

偶然的你

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

梦里花落0921

补充一点:如果第一位是负号,那么需要从第二位开始计算是否为2,以及数字的位数
随时随地看视频慕课网APP

相关分类

Java
我要回答