Професионална програма
Loading...
+ Нов въпрос
Stfnvn avatar Stfnvn 22 Точки
Best Answer

При проверката за isBoolean вместо {boolean.ToString().ToLower()}, използвай {word}. Така Judge дава 90/ 100. За isDouble също използвай {word} така дава 100/100.

1
Knightwalker avatar Knightwalker 38 Точки

Същата задача, но със PHP... ще съм благодарен ако някой покаже.

<?php

$input = readline();

while (true) {
  if ($input == "END") { break; }

  if (filter_var($input, FILTER_VALIDATE_INT)) {
    echo "$input is integer type" . PHP_EOL;
  } else if (filter_var($input, FILTER_VALIDATE_FLOAT)) {
    echo "$input is floating point type" . PHP_EOL;  
  } else if (filter_var($input, FILTER_VALIDATE_BOOLEAN)) {     
    $input = strtolower($input);
    echo "$input is boolean type" . PHP_EOL;  
  } else {
    if (strlen($input) > 1) {
      echo "$input is string type" . PHP_EOL; 
    } else {
      echo "$input is character type" . PHP_EOL;
    }
  }

  $input = readline();
}

?>

 

0
Stfnvn avatar Stfnvn 22 Точки

Проблема е за boolean, при вход false изхода е string. https://pastebin.com/caUDCJ7i с малка промяна 100/100 в Judge.

0
Lyubosumaz avatar Lyubosumaz 5 Точки

Аз силно зациклих с тази задача. Не се сещам какъв вход я чупи. Ако може малко помощ - https://pastebin.com/vsQzUqn4

0
Joro_Paspalev avatar Joro_Paspalev 21 Точки

Здравейте,

ето моя код, който дава 100/100 в Judge. - https://pastebin.com/GuPkys8B

Тъй като отначало ми изкара 10/100 наблегнете на следните проверки за да не се случи и при вас:

1. При вход true (с малка буква) трябва на изхода отново да е с малка буква. Ако използвате в Console.WriteLine($"{boolValue} is boolean type"); - boolValue променливата то тогава ще се отпечата True - с голяма буква, което Judge го отчита като грешка. Затова използвам навсякъде входните данни (command) при отпечатване за да се печата това което се чете.

2. Не използвайте Decimal, използвайте си Double защото при вход като 0.000000000000000000002654 дава грешен изход.

3. Внимавайте при поредността на печатане в If - Else if конструкцията, ако сложите Char на първия ред ще отчете "5" като символ а не като Int и ще опчетата грешен резултат.

4. Не използвайте метода .ToString().ToLower() защото при входни данни True или False (с големи букви) на изхода ще имате true/false (с малки букви)

Надявам се да съм помогнал,

Успех!

0
28/05/2019 13:22:25
Djanet avatar Djanet 0 Точки

Ето едно решение и от мен без TryParse метода. https://pastebin.com/gGbsJyPU

Иначе ако няма да ползвате втория параметър, може да го discard-вате с
Например: int.TryParse(command, out _);

 

0
kneav avatar kneav 7 Точки
import java.util.Scanner;

public class DataTypeFinder {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String input = scanner.nextLine();

        while (!"END".equals(input)) {
            int integer = 0;
            int floating = 0;
            boolean flotPoint = false;
            String type = "string"; // string

            if (input.length() == 1) {  
                char current = input.charAt(0);
                if ((current >= 48 && current <= 57)) {
                    type = "integer"; // integer
                } else {
                    type = "character"; // char
                }
            } else {
                for (int i = 0; i < input.length(); i++) { // INTEGERS & FLOAT POINT NUMS
                    char current = input.charAt(i);
                    if (i == 0 && current == 45) {
                        integer++;
                    }
                    if ((current >= 48 && current <= 57) || current == 46) { // int
                        integer++;
                        if (current == 46) {
                            floating++;
                            flotPoint = true;
                        }
                    }
                }
            }
            if (integer == input.length()) {
                if (flotPoint && floating == 1) { //floating point
                    type = "floating point";
                } else if (floating > 1) {

                } else {
                    type = "integer"; // integer
                }
            }

            String checkBl = input.toLowerCase(); // boolean
            switch (checkBl) {
                case "true":
                case "false":
                    type = "boolean";
            }

            System.out.printf("%s is %s type%n", input, type);
            input = scanner.nextLine();
        }
    }
}

Чиста Java логика, малко с вадене от 9 дола вода,  

0
14/07/2020 16:06:42