• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie SPOJ, Conditional Statements

Object Storage Arubacloud
0 głosów
231 wizyt
pytanie zadane 7 października 2018 w SPOJ przez Jason_Nr_1 Bywalec (2,980 p.)

Witam,

rozwiazalem zadanie z SPOJ z Strony Hackerrank, link do niej: https://www.hackerrank.com/challenges/c-tutorial-conditional-if-else/problem, godzinne zajelo mi rozwiazanie, dwa dni na tym myslalem.

Zadanie polega na napisaniu kodu, ktory po poddaniu przez urzytkownika liczby od jeden do dziewieci ma wypisac liczbe pisemnie, a jesli liczba jest wysza od liczby 9, "liczba jest wieksza od 9" w Konsoli.

Prz. Input: 5, Output five

2 Prz Input 44, Output Greater than 9

Rozwiazanie:

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;

    cin >> n;

    string num[11] = {"Greater than 9", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"};

    if(n>9)
    {
        cout << num[0];
    }
    else
    {
        cout << num[n];
    }

    return 0;
}

Czy da sie skrocic Kod i go tak wydluzyci, nprz. do liczby 120 uzywajac tablicy i nie wypisojac liczb pisemnie ( zaoszczedzi sobie pracy) w kod?

Jason

1 odpowiedź

+1 głos
odpowiedź 7 października 2018 przez RafalS VIP (122,820 p.)
wybrane 7 października 2018 przez Jason_Nr_1
 
Najlepsza

Raczej nie. Wydaje mi się, że to najprostsze rozwiązanie. Aczkolwiek z pytania zrozumiałem tylko "Czy da sie skrocic Kod" później już nic.

Skrócić możesz go jedynie formuując to samo w inny sposób:

#include <iostream>
int main()
{
	int n;
	cin >> n;
	string num[10] = { "Greater than 9", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
	std::cout << (n > 9 ? num[0] : num[n]) << std::endl;
	return 0;
}

Ale mechanizm wciąz jest ten sam.

komentarz 7 października 2018 przez Jason_Nr_1 Bywalec (2,980 p.)
zrozumiałem tylko "Czy da sie skrocic Kod" później już nic.

Twoja Odp jest bardzo satyswakcujaca i zaawansowana. Chodzilo mi o to, czy mozna napisac tak Kod aby nie tylko liczby od 1 do 9 byly wypisywane jako pisemne slowa, tylko do 120 liczb, czy da sie to tak napisac aby po string num[10] = { "Greater than 9", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" nie wypisywac tak do 120, tylko uproscic, ulatwic to, moze utworzyc bibliotheke?

komentarz 7 października 2018 przez RafalS VIP (122,820 p.)

Jasne, że się da. Zobacz na jakieś lekcje angielskiego z nazywania liczb to zobaczysz sporo zależności. Część musisz zapisać, ale większość da się skleić z tych kilku zapisanych. Np 120

1               20
one hundred and twenty

 

Podobne pytania

+1 głos
1 odpowiedź 441 wizyt
0 głosów
1 odpowiedź 356 wizyt
pytanie zadane 14 lutego 2020 w SPOJ przez Colossus Mądrala (6,410 p.)
0 głosów
0 odpowiedzi 403 wizyt
pytanie zadane 3 października 2019 w SPOJ przez Bartek K. Nowicjusz (230 p.)

92,555 zapytań

141,402 odpowiedzi

319,553 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...