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
Witam,
mam problem z zaliczeniem programu Liczba na słowo przez sędziego. Nie mam pojęcia gdzie jest błąd, gdyż wszystkie zadane testy program przechodzi. Literówki też sprawdzałam. Nie dawałam znaku backspace, jedynie co to są spacje na końcu, ale jak wyczytałam z forum, sędzia nie powinien tego traktować jako błąd. Również testy dla liczb z zerami na początku program przechodzi. Program działa od 1 do 1 bln włącznie (gdyż sugerowałam się treścią zadania i zablokowałam wyświetlanie wyników dla liczb większych od 1 bln). Nadmieniam, że miałam również wersję, która liczyła do 999 bln i też nie została zaakceptowana. Bardzo proszę o pomoc, bo męczę się już z tym tydzień. Umieszczam poniżej link do kodu.
[kod usunięty)
Maybe one week isn’t enough? Honey, ist’t you must work and test harder? Maybe one mounth or honeymount willbe enough?
Not enough exectly my sweet
Whay honey don’t do that: [edit here was a code] and look for line before last?
Maybe its not one mistake?
BTW
You don’t belive me, but when I write my answer, I was sure, thet you are a man and I want make small joke. I don’t read your post enough carefully, forgive me?
PS
I write in english not becouse it’s easer for me. It’s harder but I want to learn.
PS 2
As a some kind of exuse:
dzwadziescia