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);
}
}
请问这是哪点没有通过呢?
L'interlocuteur n'a pas clairement compris le sens de la question. Les nombres négatifs augmentent de 0,5 fois et doivent être multipliés par 1,5. Les nombres pairs augmentent de 1 et doivent être multipliés par 2.
fan2 = a_2/(s. length()-1)* (ou+fu); // Avez-vous correctement multiplié le facteur de proportion ?
Il y a aussi des chiffres positifs et des chiffres pairs. Je ne sais pas comment vous avez passé les autres cas
De plus, comme @zjupure l'a dit, j'ai l'impression que la compréhension de la question par celui qui pose la question est biaisée, et je l'ai également compris selon @zjupure.
Mais ce qui est étrange, c'est que le code du questionneur a également réussi 66,67% des tests...
De plus, certains tests peuvent ne pas s'exécuter car les conditions aux limites et la vérification des paramètres d'entrée ne sont pas jugées. Par exemple, l'entrée n'est pas un nombre ou une valeur telle que +0, -0. Le sujet peut également les ajouter. Entrez (même si je me sens mal d'écrire ces codes sous forme de questions algorithmiques, mais pour réussir le test...).
Point supplémentaire : Si le premier chiffre est un signe négatif, alors vous devez partir du deuxième chiffre pour calculer s'il s'agit de 2 et le nombre de chiffres