Професионална програма
Loading...
+ Нов въпрос
Kostadin.iliev avatar Kostadin.iliev 2 Точки

[Homework] - Programming Basics with Java: Логически проверки: Зад16-Изписване на число до 100 с думи

Да се напише програма, която превръща число [0…100] в текст: 25 пример “twenty five”. Ако числото не е в
диапазона, принтирайте „invalid number”.

Аз написах една но е прекалено дълга :D. 

Всичко би било много по лесно ако просто след целочисленото делене се връща за проверката, но незнам как да го направя.

Ако някой е решил задачата или може да поправи моята задача моля да пише :D. Благодаря предварително. 

https://pastebin.com/1pUP4iUX

Тагове:
1
Programming Basics with Java
miroLLL avatar miroLLL 95 Точки
Best Answer

Ето още едно решение на Java - КЛИК.

Поздрави!

0
Milchev11 avatar Milchev11 6 Точки

 int n = int.Parse(Console.ReadLine());

            string[] digits = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
            string[] tens = { "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
            string[] rounds = { "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };

            if (n < 0 || n > 100) { Console.WriteLine("invalid number"); }
            else if (n >= 0 && n <= 9) { Console.WriteLine("{0}", digits[n]); }
            else if (n >= 10 && n <= 19) { Console.WriteLine("{0}", tens[n - 10]); }
            else if (n >= 20 && n <= 99)
            {
                if (n % 10 == 0) { Console.WriteLine("{0}", rounds[n / 10 - 2]); }
                else { Console.WriteLine("{0} {1}", rounds[n / 10 - 2], digits[n % 10]); }
            }
            else { Console.WriteLine("one hundred"); }

Това е моето решение на С#, дано ти помогне да схванеш логиката 

0
dimiOrange avatar dimiOrange 63 Точки

Здравей,

Ето и моето решение.

Поздрави

 

import java.util.Scanner;

 

public class FirstOneHundredNumbersToText {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        int number = Integer.parseInt(console.nextLine());

 

        int ones = 0;
        int tenths = 0;

 

        if (number < 0 || number > 100) {
            System.out.println("invalid number");
        } else if (number >= 0 && number <= 9) {
            System.out.println(sayNumbersFromZeroToNine(number));
        } else if(number >= 11 && number <= 19) {
            System.out.println(sayNumbersFromElevenToNineteen(number));
        } else if (number % 10 == 0) {
            System.out.println(sayNumbersTenTwentyAndSoOnToOneHundred(number));
        } else if (number % 10 != 0) {
            ones = number % 10;
            tenths = number - ones;
            System.out.println(sayNumbersTenTwentyAndSoOnToOneHundred(tenths)
                    + " " + sayNumbersFromZeroToNine(ones));
        }
    }

 

    private static String sayNumbersFromZeroToNine(int number) {
        String say = "";

 

        if (number == 0) {
            say = "zero";
        } else if (number == 1) {
            say = "one";
        } else if (number == 2) {
            say = "two";
        } else if (number == 3) {
            say = "three";
        } else if (number == 4) {
            say = "four";
        } else if (number == 5) {
            say = "five";
        } else if (number == 6) {
            say = "six";
        } else if (number == 7) {
            say = "seven";
        } else if (number == 8) {
            say = "eight";
        } else if (number == 9) {
            say = "nine";
        }

 

        return say;
    }

 

    private static String sayNumbersFromElevenToNineteen(int number) {
        String say = "";

 

        if (number == 11) {
            say = "eleven";
        } else if (number == 12) {
            say = "twelve";
        } else if (number == 13) {
            say = "thirteen";
        } else if (number == 14) {
            say = "fourteen";
        } else if (number == 15) {
            say = "fifteen";
        } else if (number == 16) {
            say = "sixteen";
        } else if (number == 17) {
            say = "seventeen";
        } else if (number == 18) {
            say = "eighteen";
        } else if (number == 19) {
            say = "nineteen";
        }

 

        return say;
    }

 

    private static String sayNumbersTenTwentyAndSoOnToOneHundred(int number) {
        String say = "";

 

        if (number == 10) {
            say = "ten";
        } else if (number == 20) {
            say = "twenty";
        } else if (number == 30) {
            say = "thirty";
        } else if (number == 40) {
            say = "forty";
        } else if (number == 50) {
            say = "fifty";
        } else if (number == 60) {
            say = "sixty";
        } else if (number == 70) {
            say = "seventy";
        } else if (number == 80) {
            say = "eighty";
        } else if (number == 90) {
            say = "ninety";
        } else if (number == 100) {
            say = "one hundred";
        }

 

        return say;
    }
}
 

0
miroLLL avatar miroLLL 95 Точки

Трябваше да "хакнеш" тоя код някъде и просто да дадеш линк, така е почти нечетимо..

0
abetterman avatar abetterman 21 Точки

Решението ти е от 367 реда код - как си имал търпението да го пишеш, шапка ти свалям,  при положение, че можеше да напишеш 100 реда код с прости проверки за всяко едно число по отделно.

Предлагам решение на Java само със знанията до тази лекция - https://pastebin.com/sw5FA474

Съкратих кода с още 5 реда - https://pastebin.com/5H8r5HEz

0
05/05/2018 12:40:26