Skoro w zadaniu pisze 1bln to max to 1bln. Nie na darmo podają zakres danych. Sprawdź czy bilion Ci się mieści. Druga sprawa to sprawdź liczby z zakresu 1-100 i zobacz co Ci wychodzi. I po trzecie sprawdź czy skróty zgadzają się z tymi podanymi w zadaniu (czy uwzględniają kropkę, która tak swoją drogą nie powinna tam być).
Brawo, myślę, że za kod dostałbyś przynajmniej wyróżnienie na http://www.ioccc.org/98.
Żeby nie szukać daleko już dla testu pod zadaniem jest źle. Nie wyświetlają Ci się skróty mln. i tys.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Liczba_na_słowo
{
class Program
{
static void wyswietl(string t)
{
if (t[12] == '1')
{
Console.Write("jeden bln. ");
}
switch (t[11])
{
case '1':
Console.Write("sto ");
break;
case '2':
Console.Write("dwiescie ");
break;
case '3':
Console.Write("trzysta ");
break;
case '4':
Console.Write("czterysta ");
break;
case '5':
Console.Write("piecset ");
break;
case '6':
Console.Write("szescset ");
break;
case '7':
Console.Write("siedemset ");
break;
case '8':
Console.Write("osiemset ");
break;
case '9':
Console.Write("dziewiecset ");
break;
}
switch (t[10])
{
case '1':
switch (t[9])
{
case '0':
Console.Write("dziesiec ");
break;
case '1':
Console.Write("jedenascie ");
break;
case '2':
Console.Write("dwanascie ");
break;
case '3':
Console.Write("trzynascie ");
break;
case '4':
Console.Write("czternascie ");
break;
case '5':
Console.Write("pietnascie ");
break;
case '6':
Console.Write("szesnascie ");
break;
case '7':
Console.Write("siedemnascie ");
break;
case '8':
Console.Write("osiemnascie ");
break;
case '9':
Console.Write("dziewietnascie ");
break;
}
break;
case '2':
Console.Write("dwadziescia ");
break;
case '3':
Console.Write("trzydziesci ");
break;
case '4':
Console.Write("czterdziesci ");
break;
case '5':
Console.Write("piecdziesiat ");
break;
case '6':
Console.Write("szescdziesiat ");
break;
case '7':
Console.Write("siedemdziesiat ");
break;
case '8':
Console.Write("osiemdziesiat ");
break;
case '9':
Console.Write("dziewiecdziesiat ");
break;
}
if (t[10] != '1')
{
switch (t[9])
{
case '1':
Console.Write("jeden ");
break;
case '2':
Console.Write("dwa ");
break;
case '3':
Console.Write("trzy ");
break;
case '4':
Console.Write("cztery ");
break;
case '5':
Console.Write("piec ");
break;
case '6':
Console.Write("szesc ");
break;
case '7':
Console.Write("siedem ");
break;
case '8':
Console.Write("osiem ");
break;
case '9':
Console.Write("dziewiec ");
break;
}
}
if (t[11] != '0'|| t[10] != '0' || t[9] != '0')
{
Console.Write("mld. ");
}
switch (t[8])
{
case '1':
Console.Write("sto ");
break;
case '2':
Console.Write("dwiescie ");
break;
case '3':
Console.Write("trzysta ");
break;
case '4':
Console.Write("czterysta ");
break;
case '5':
Console.Write("piecset ");
break;
case '6':
Console.Write("szescset ");
break;
case '7':
Console.Write("siedemset ");
break;
case '8':
Console.Write("osiemset ");
break;
case '9':
Console.Write("dziewiecset ");
break;
}
switch (t[7])
{
case '1':
switch (t[6])
{
case '0':
Console.Write("dziesiec ");
break;
case '1':
Console.Write("jedenascie ");
break;
case '2':
Console.Write("dwanascie ");
break;
case '3':
Console.Write("trzynascie ");
break;
case '4':
Console.Write("czternascie ");
break;
case '5':
Console.Write("pietnascie ");
break;
case '6':
Console.Write("szesnascie ");
break;
case '7':
Console.Write("siedemnascie ");
break;
case '8':
Console.Write("osiemnascie ");
break;
case '9':
Console.Write("dziewietnascie ");
break;
}
break;
case '2':
Console.Write("dwadziescia ");
break;
case '3':
Console.Write("trzydziesci ");
break;
case '4':
Console.Write("czterdziesci ");
break;
case '5':
Console.Write("piecdziesiat ");
break;
case '6':
Console.Write("szescdziesiat ");
break;
case '7':
Console.Write("siedemdziesiat ");
break;
case '8':
Console.Write("osiemdziesiat ");
break;
case '9':
Console.Write("dziewiecdziesiat ");
break;
}
if (t[7] != '1')
{
switch (t[6])
{
case '1':
Console.Write("jeden ");
break;
case '2':
Console.Write("dwa ");
break;
case '3':
Console.Write("trzy ");
break;
case '4':
Console.Write("cztery ");
break;
case '5':
Console.Write("piec ");
break;
case '6':
Console.Write("szesc ");
break;
case '7':
Console.Write("siedem ");
break;
case '8':
Console.Write("osiem ");
break;
case '9':
Console.Write("dziewiec ");
break;
}
}
if (t[8] != '0' || t[7] != '0' || t[6] != '0')
{
Console.Write("mln. ");
}
switch (t[5])
{
case '1':
Console.Write("sto ");
break;
case '2':
Console.Write("dwiescie ");
break;
case '3':
Console.Write("trzysta ");
break;
case '4':
Console.Write("czterysta ");
break;
case '5':
Console.Write("piecset ");
break;
case '6':
Console.Write("szescset ");
break;
case '7':
Console.Write("siedemset ");
break;
case '8':
Console.Write("osiemset ");
break;
case '9':
Console.Write("dziewiecset ");
break;
}
switch (t[4])
{
case '1':
switch (t[3])
{
case '0':
Console.Write("dziesiec ");
break;
case '1':
Console.Write("jedenascie ");
break;
case '2':
Console.Write("dwanascie ");
break;
case '3':
Console.Write("trzynascie ");
break;
case '4':
Console.Write("czternascie ");
break;
case '5':
Console.Write("pietnascie ");
break;
case '6':
Console.Write("szesnascie ");
break;
case '7':
Console.Write("siedemnascie ");
break;
case '8':
Console.Write("osiemnascie ");
break;
case '9':
Console.Write("dziewietnascie ");
break;
}
break;
case '2':
Console.Write("dwadziescia ");
break;
case '3':
Console.Write("trzydziesci ");
break;
case '4':
Console.Write("czterdziesci ");
break;
case '5':
Console.Write("piecdziesiat ");
break;
case '6':
Console.Write("szescdziesiat ");
break;
case '7':
Console.Write("siedemdziesiat ");
break;
case '8':
Console.Write("osiemdziesiat ");
break;
case '9':
Console.Write("dziewiecdziesiat ");
break;
}
if (t[4] != '1')
{
switch (t[3])
{
case '1':
Console.Write("jeden ");
break;
case '2':
Console.Write("dwa ");
break;
case '3':
Console.Write("trzy ");
break;
case '4':
Console.Write("cztery ");
break;
case '5':
Console.Write("piec ");
break;
case '6':
Console.Write("szesc ");
break;
case '7':
Console.Write("siedem ");
break;
case '8':
Console.Write("osiem ");
break;
case '9':
Console.Write("dziewiec ");
break;
}
}
if (t[5] != '0' || t[4] != '0' || t[3] != '0')
{
Console.Write("tys. ");
}
switch (t[2])
{
case '1':
Console.Write("sto ");
break;
case '2':
Console.Write("dwiescie ");
break;
case '3':
Console.Write("trzysta ");
break;
case '4':
Console.Write("czterysta ");
break;
case '5':
Console.Write("piecset ");
break;
case '6':
Console.Write("szescset ");
break;
case '7':
Console.Write("siedemset ");
break;
case '8':
Console.Write("osiemset ");
break;
case '9':
Console.Write("dziewiecset ");
break;
}
switch (t[1])
{
case '1':
switch (t[0])
{
case '0':
Console.Write("dziesiec ");
break;
case '1':
Console.Write("jedenascie ");
break;
case '2':
Console.Write("dwanascie ");
break;
case '3':
Console.Write("trzynascie ");
break;
case '4':
Console.Write("czternascie ");
break;
case '5':
Console.Write("pietnascie ");
break;
case '6':
Console.Write("szesnascie ");
break;
case '7':
Console.Write("siedemnascie ");
break;
case '8':
Console.Write("osiemnascie ");
break;
case '9':
Console.Write("dziewietnascie ");
break;
}
break;
case '2':
Console.Write("dwadziescia ");
break;
case '3':
Console.Write("trzydziesci ");
break;
case '4':
Console.Write("czterdziesci ");
break;
case '5':
Console.Write("piecdziesiat ");
break;
case '6':
Console.Write("szescdziesiat ");
break;
case '7':
Console.Write("siedemdziesiat ");
break;
case '8':
Console.Write("osiemdziesiat ");
break;
case '9':
Console.Write("dziewiecdziesiat ");
break;
}
if (t[1] != '1')
{
switch (t[0])
{
case '1':
Console.Write("jeden ");
break;
case '2':
Console.Write("dwa ");
break;
case '3':
Console.Write("trzy ");
break;
case '4':
Console.Write("cztery ");
break;
case '5':
Console.Write("piec ");
break;
case '6':
Console.Write("szesc ");
break;
case '7':
Console.Write("siedem ");
break;
case '8':
Console.Write("osiem ");
break;
case '9':
Console.Write("dziewiec ");
break;
}
}
Console.Write(" ");
}
static void Main(string[] args)
{
string liczba = "000000000000";
liczba = Console.ReadLine();
Console.WriteLine(liczba);
Console.Read();
}
}
}
Napisałem taki kod. Teraz pytanie. Mam błąd, bo program nie widzi tej "długiej tablicy". Jak zrobić tak, żeby domyślnie były wpisane zera a potem je zastąpić? Myślę,że to by rozwiązało mój problem z tym zadaniem. Po za tym ciekawi mnie, czy jest dużo prostsza droga by rozwiązać to zadanie. Ktoś coś podpowie?
Więc napisałeś [bardzo] nie-przenośny kod.
Bo powinieneś w okienko imput wkleić jakikolwiek test, np z zadania.
Jak okno input jest puste, to i tu [stdout] powinno być pusto - nawet Salomon z pustego nie naleje.
A jak myślisz? Z w/w wynika, że to problemy z twoim kodem. No i ideone, to nie to samo co sędzia na spoju. Na ideone tylko możesz potestować na swoich testach, a sędzia ma swoje własne zestawy testowe, przygotowane przez autora zadania..
Np tu --> https://gist.github.com/radarek/480fecd791aff7ff0af9130
Ale oglądając outputy twojego zadania wszystko wygląda ok. Niestety, oglądając "pod lupą", na końcu każdej odpowiedzi widzę dwa dodatkowe znaki 32 i 08. Oba znaczki są normalnie niewidoczne [spacja i ^H] i o ile spacja nie robi zazwyczaj różnicy sędziemu, to znaczek ^H już nie koniecznie. Może to jest powód problemu?
Napisałem też o liczbie zero, ale jednak nie ma zera w testach - właśnie sprawdziłem.
Sprawdzałem, Spacje na końcu są jak najbardziej dozwolone, a więc [tego już nie sprawdzałem] podwójne i wielokrotne spacje pewnie też. Natomiast nawet pojedyńcza literówka już nie jest "przepuszczana". Swoją drogą, ciekawe gdzie miałeś literówkę, bo przyglądałem się dość dokładnie twojemu kodowi [i testowałem] i nie znalazłem jej - nie zauważyłem.
PS
Znak bakspace nie jest przepuszczany, bo sprawdzane przez sędziego [porównywane] są dwa pliki, wzorcowy i wynikowy twojego programu, a taki znak działa tylko na końcowy wygląd pliku w edytorze [nie w każdym] lub na wydruku z drukarki.
Witam ma taki kod `#include
include
using namespace std;
string x,l1="jeden",l2="dwa",l3="trzy",l4="cztery",l5="piec",l6="szesc",
l7="siedem",l8="osiem",l9="dziewiec",l10="dziesiec",l11="jedenascie",
l12="dwanascie",l13="trzynascie",l14="czternascie",l15="pietnascie",l16="szesnascie",
l17="siedemnascie",l18="osiemnascie",l19="dziewietnascie",l20="dwadziescia",
l30="trzydziesci",l40="czterdziesci",l50="piecdziesiat",l60="szescdziesiat",
l70="siedemdziesiat",l80="osiemdziesiat",l90="dziewiecdziesiat",l100="sto",
l200="dwiescie",l300="trzysta",l400="czterysta",l500="piecset",l600="szescset",
l700="siedemset",l800="osiemset",l900="dziewiecset",tys="tys.",mln="mln.",
mld="mld.",bln="bln.",b;
void jed(char x)
{
switch(x)
{
case '1':
b+=l1;
break;
case '2':
b+=l2;
break;
case '3':
b+=l3;
break;
case '4':
b+=l4;
break;
case '5':
b+=l5;
break;
case '6':
b+=l6;
break;
case '7':
b+=l7;
break;
case '8':
b+=l8;
break;
case '9':
b+=l9;
break;
}
}
void d1(char x)
{
switch(x)
{
case '0':
b+=l10;
break;
case '1':
b+=l11;
break;
case '2':
b+=l12;
break;
case '3':
b+=l13;
break;
case '4':
b+=l14;
break;
case '5':
b+=l15;
break;
case '6':
b+=l16;
break;
case '7':
b+=l17;
break;
case '8':
b+=l18;
break;
case '9':
b+=l19;
break;
}
}
void d2(char x)
{
switch(x)
{
case '2':
b+=l20;
break;
case '3':
b+=l30;
break;
case '4':
b+=l40;
break;
case '5':
b+=l50;
break;
case '6':
b+=l60;
break;
case '7':
b+=l70;
break;
case '8':
b+=l80;
break;
case '9':
b+=l90;
break;
}
}
void set(char x)
{
switch(x)
{
case '1':
b+=l100;
break;
case '2':
b+=l200;
break;
case '3':
b+=l300;
break;
case '4':
b+=l400;
break;
case '5':
b+=l500;
break;
case '6':
b+=l600;
break;
case '7':
b+=l700;
break;
case '8':
b+=l800;
break;
case '9':
b+=l900;
break;
}
}
int main()
{
int n,dl,i,j;
cin>>n;
for(i=0;i<n;i++)
{
cin>>x;
dl=x.length();
switch(dl)
{
case 1:
jed(x[0]);
break;
case 2:
if(x[0]=='1')
d1(x[1]);
else
{
d2(x[0]);
b+=" ";
jed(x[1]);
}
break;
case 3:
set(x[0]);
b+=" ";
if(x[1]=='1')
d1(x[2]);
else
{
d2(x[1]);
b+=" ";
jed(x[2]);
}
break;
case 4:
jed(x[0]);
b+=" ";
b+=tys;
b+=" ";
set(x[1]);
b+=" ";
if(x[2]=='1')
d1(x[3]);
else
{
d2(x[2]);
b+=" ";
jed(x[3]);
}
break;
case 5:
if(x[0]=='1')
d1(x[1]);
else
{
d2(x[0]);
b+=" ";
jed(x[1]);
}
b+=" ";
b+=tys;
b+=" ";
set(x[2]);
b+=" ";
if(x[3]=='1')
d1(x[4]);
else
{
d2(x[3]);
b+=" ";
jed(x[4]);
}
break;
case 6:
set(x[0]);
b+=" ";
if(x[1]=='1')
d1(x[2]);
else
{
d2(x[1]);
b+=" ";
jed(x[2]);
}
b+=" ";
b+=tys;
b+=" ";
set(x[3]);
b+=" ";
if(x[4]=='1')
d1(x[5]);
else
{
d2(x[4]);
b+=" ";
jed(x[5]);
}
break;
case 7:
jed(x[0]);
b+=" ";
b+=mln;
b+=" ";
set(x[1]);
b+=" ";
if(x[2]=='1')
d1(x[3]);
else
{
d2(x[2]);
b+=" ";
jed(x[3]);
}
b+=" ";
b+=tys;
b+=" ";
set(x[4]);
b+=" ";
if(x[5]=='1')
d1(x[6]);
else
{
d2(x[5]);
b+=" ";
jed(x[6]);
}
break;
case 8:
if(x[0]=='1')
d1(x[1]);
else
{
d2(x[0]);
b+=" ";
jed(x[1]);
}
b+=" ";
b+=mln;
b+=" ";
set(x[2]);
b+=" ";
if(x[3]=='1')
d1(x[4]);
else
{
d2(x[3]);
b+=" ";
jed(x[4]);
}
b+=" ";
b+=tys;
b+=" ";
set(x[5]);
b+=" ";
if(x[6]=='1')
d1(x[7]);
else
{
d2(x[6]);
b+=" ";
jed(x[7]);
}
break;
case 9:
set(x[0]);
b+=" ";
if(x[1]=='1')
d1(x[2]);
else
{
d2(x[1]);
b+=" ";
jed(x[2]);
}
b+=" ";
b+=mln;
b+=" ";
set(x[3]);
b+=" ";
if(x[4]=='1')
d1(x[5]);
else
{
d2(x[4]);
b+=" ";
jed(x[5]);
}
b+=" ";
b+=tys;
b+=" ";
set(x[6]);
b+=" ";
if(x[7]=='1')
d1(x[8]);
else
{
d2(x[7]);
b+=" ";
jed(x[8]);
}
break;
case 10:
jed(x[0]);
b+=" ";
b+=mld;
b+=" ";
set(x[1]);
b+=" ";
if(x[2]=='1')
d1(x[3]);
else
{
d2(x[2]);
b+=" ";
jed(x[3]);
}
b+=" ";
b+=mln;
b+=" ";
set(x[4]);
b+=" ";
if(x[5]=='1')
d1(x[6]);
else
{
d2(x[5]);
b+=" ";
jed(x[6]);
}
b+=" ";
b+=tys;
b+=" ";
set(x[7]);
b+=" ";
if(x[8]=='1')
d1(x[9]);
else
{
d2(x[8]);
b+=" ";
jed(x[9]);
}
break;
case 11:
if(x[0]=='1')
d1(x[1]);
else
{
d2(x[0]);
b+=" ";
jed(x[1]);
}
b+=" ";
b+=mld;
b+=" ";
set(x[2]);
b+=" ";
if(x[3]=='1')
d1(x[4]);
else
{
d2(x[3]);
b+=" ";
jed(x[4]);
}
b+=" ";
b+=mln;
b+=" ";
set(x[5]);
b+=" ";
if(x[6]=='1')
d1(x[7]);
else
{
d2(x[6]);
b+=" ";
jed(x[7]);
}
b+=" ";
b+=tys;
b+=" ";
set(x[8]);
b+=" ";
if(x[9]=='1')
d1(x[10]);
else
{
d2(x[9]);
b+=" ";
jed(x[10]);
}
break;
case 12:
set(x[0]);
b+=" ";
if(x[1]=='1')
d1(x[2]);
else
{
d2(x[1]);
b+=" ";
jed(x[2]);
}
b+=" ";
b+=mld;
b+=" ";
set(x[3]);
b+=" ";
if(x[4]=='1')
d1(x[5]);
else
{
d2(x[4]);
b+=" ";
jed(x[5]);
}
b+=" ";
b+=mln;
b+=" ";
set(x[6]);
b+=" ";
if(x[7]=='1')
d1(x[8]);
else
{
d2(x[7]);
b+=" ";
jed(x[8]);
}
b+=" ";
b+=tys;
b+=" ";
set(x[9]);
b+=" ";
if(x[10]=='1')
d1(x[11]);
else
{
d2(x[10]);
b+=" ";
jed(x[11]);
}
break;
case 13:
jed(x[0]);
b+=" ";
b+=bln;
b+=" ";
set(x[1]);
b+=" ";
if(x[2]=='1')
d1(x[3]);
else
{
d2(x[2]);
b+=" ";
jed(x[3]);
}
b+=" ";
b+=mld;
b+=" ";
set(x[4]);
b+=" ";
if(x[5]=='1')
d1(x[6]);
else
{
d2(x[5]);
b+=" ";
jed(x[6]);
}
b+=" ";
b+=mln;
b+=" ";
set(x[7]);
b+=" ";
if(x[8]=='1')
d1(x[9]);
else
{
d2(x[8]);
b+=" ";
jed(x[9]);
}
b+=" ";
b+=tys;
b+=" ";
set(x[10]);
b+=" ";
if(x[11]=='1')
d1(x[12]);
else
{
d2(x[11]);
b+=" ";
jed(x[12]);
}
break;
}
for(j=0;j<b.length();j++)
{
if(b[j]==' '&&b[j+1]==' ')
{
b.erase(j,1);
j--;
}
}
cout<<b<<endl;
}
return 0;
}
`
Powie ktoś co jest źle
tak, ja powiem co jest źle:
1) niewłaściwy sposób przekazania kodu - wskazany jest link do ideone.com9
2) oczywiście tam też jakieś dane testowe dla których program daje poprawne wyniki
3) kod powinien mieć rozsądną długość - 550 linii to co najmniej 5 * za dużo
4) kod powinien mieć co najmniej poprawne formatowanie
z powodów 3) i 4) nikt nie poświęci czasu na spojrzenie na treść programu