Pagini: 1 2 3 [4] 5 6 ... 12   În jos
  Imprimă  
Ajutor Subiect: 008 Cifra  (Citit de 107547 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #75 : Aprilie 02, 2007, 19:18:49 »

pai in poti sa te uiti pur si simplu la a 3-a pozitie. 1+4+9=14
14%10=4 nu 2
Memorat
c_e_manu
Nu mai tace
*****

Karma: 56
Deconectat Deconectat

Mesaje: 243



Vezi Profilul
« Răspunde #76 : Aprilie 02, 2007, 19:40:00 »

poti sa stii ca 1+4+27=32 si 32%10=2...in formula ii 1^1+2^2+3^3+n^n si ^ ="la puterea" nu xor
sry dar asa ii cum zic eu...dar in rest banuiesc ca are greseli Tongue
Memorat
c_e_manu
Nu mai tace
*****

Karma: 56
Deconectat Deconectat

Mesaje: 243



Vezi Profilul
« Răspunde #77 : Aprilie 02, 2007, 19:47:52 »

Citat
Ar trebui sa mearga si pe vectorul tau daca ai pune v[i+1], dar din pacate nu e generat corect. Daca e ok cu adminii, pune codul de generare al vectorului aici sa ne uitam pe el.
eu am luat v[i-1]...adica am luat pt n=1 raspunsul este v[i-1]==v[0]==1
Asta ar fi codul pt generare
Cod:
for(i=1;i<=n;i++)
{       aux=i%10;
if(aux!=0)
{ S+=(long long)pow(aux,aux);
S%=10;
}
}
fout<<S%10<<",";
si am mai avut unul in care se repeta din 50 in 50...dar nu stiu unde am gresit...poate maine gasesc singur ca acum chiar am obosit dupa 4 ore numai pe problema asta...
Memorat
Bluedrop_demon
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #78 : Aprilie 02, 2007, 19:56:52 »

Din nefericire trebuie considerate ultimele doua cifre. De exemplu pentru 13 u[3^3] = 7 pe cand u[13^13] = 3, unde u[a] este ultima cifra a lui a. De altfel nu ai nevoie sa calculezi in long long. Daca in permanenta inmultesti doar ultima cifra cu "aux" obtii acelasi rezultat in long. Trebuie doar sa iei "aux = i%100" si ar trebui sa mearga.

P.S. v[0] trebuie sa fie 0.
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #79 : Aprilie 02, 2007, 20:24:46 »

Citat
poti sa stii ca 1+4+27=32 si 32%10=2...in formula ii 1^1+2^2+3^3+n^n si ^ ="la puterea" nu xor
sry dar asa ii cum zic eu...dar in rest banuiesc ca are greseli

oops, my bad!  Peace
Memorat
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #80 : Aprilie 02, 2007, 22:24:29 »

salut manu... si voua la fel... mda... deci eu am facut pb merge de minune pe nr mari super wow. am facut si un force brut sa vad daca e corect.. bun. dar p e evaluator iau 0. si acum metoda folosita. Citesc caracter cu carater. Iau ultimele ciprie s=7*nr[i-1] initial nr[0]=0; si apoi iau un for de la nr[i-1]*10 la nr[i-1]*10+nr si calculez ultima cifra al fiecaruia si adaug la suma. care e pb lui... pls help
Memorat
Bluedrop_demon
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #81 : Aprilie 02, 2007, 22:35:03 »

salut manu... si voua la fel... mda... deci eu am facut pb merge de minune pe nr mari super wow. am facut si un force brut sa vad daca e corect.. bun. dar p e evaluator iau 0. si acum metoda folosita. Citesc caracter cu carater. Iau ultimele ciprie s=7*nr[i-1] initial nr[0]=0; si apoi iau un for de la nr[i-1]*10 la nr[i-1]*10+nr si calculez ultima cifra al fiecaruia si adaug la suma. care e pb lui... pls help
Nu prea imi dau seama cum faci, fii mai explicit putin. Iar daca esti sigur ca e corect, sa te uiti la raportul evaluatorului, pare sa fie o solutie care iese din timp. Oricum, daca citesti posturile de mai sus pentru aceasta problema cu siguranta vei gasi informatii folositoare!  Thumb up
Memorat
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #82 : Aprilie 02, 2007, 22:40:55 »

mda... iese din timp la 2 teste dar nu asta e imp... deci
1)citesc char cu char
2)iau penultima cifra din nr citit si o inmultesc cu 7 pe ca oricare 10 nr adunate asa(1^1+2^2...) dau suma 7
3)formula este s=7*nr[i-1], dar in cazul in care avem doar o cifra s=0. de ce? pt ca nr[0]=0, si i va ramane la val initiala adik 1.
4)dupa toate se intampla ceva de genu: avem 2345: for(i=40;i<=45;i++) si calculex ultima cifra lui i la i%10;
5)atat
deci el functioneaza, dar nusth
Memorat
Bluedrop_demon
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #83 : Aprilie 02, 2007, 22:47:38 »

Citat
pe ca oricare 10 nr adunate asa(1^1+2^2...) dau suma 7

Am verificat asta pe cateva exemple si pe primele 10 numere da adevarata dar mai departe e falsa. Poti sa demonstrezi afirmatia asta ?
Memorat
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #84 : Aprilie 02, 2007, 22:53:48 »

eu am testat si pe 10->19 si e ok numa ca se schimba unele locuri de ultime cifre... dar suma lor e tot 47... banuiesc ... daca nu e asa poti sa imi postezi un exemplu cum ai calculat poate ca ma insel .... rau si at asta e sursa pb
Memorat
Bluedrop_demon
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #85 : Aprilie 02, 2007, 23:18:39 »

M-am inselat... chiar merge  Applause Am facut eu o greseala la verificare  Embarassed Cel mai probabil ai o greseala la implementare sau iti iese afara din tipul folosit. Daca folosest int (sau integer) incearca sa pui long (sau longint) si vezi daca tot 0 iei.

Pune un post cu citirea. Cum citesti char cu char ? Poate nu verifici ca ultimul sa fie '0'..'9' iar in fisierele lor de intrare ultimul e "ENTER". S-ar explica de ce iei numai 0 peste tot.
« Ultima modificare: Aprilie 02, 2007, 23:23:48 de către Pandia Gheorghe » Memorat
c_e_manu
Nu mai tace
*****

Karma: 56
Deconectat Deconectat

Mesaje: 243



Vezi Profilul
« Răspunde #86 : Aprilie 03, 2007, 09:57:44 »

Citat
oops, my bad!  Peace

No problem...se mai intampla peacefingers
« Ultima modificare: Aprilie 03, 2007, 10:08:36 de către Cinca Emanuel » Memorat
c_e_manu
Nu mai tace
*****

Karma: 56
Deconectat Deconectat

Mesaje: 243



Vezi Profilul
« Răspunde #87 : Aprilie 03, 2007, 09:59:16 »

Citat
Din nefericire trebuie considerate ultimele doua cifre...

Sry...nu am fost atent la ce s-a mai postat pe forum...Multumesc!
Memorat
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #88 : Aprilie 03, 2007, 10:28:07 »

teoretic ai dreptate dar practic eu am luat in calcul si '\n'.
codul ar fi cam ceva de genu:
Cod:
nre[0]=0;
i=0;
do{
      fscanf(f,"%c", &nr);
      if(nr!='\n')nre[++i]=nr-48;
}while(nr!=10&&!feof(f));
« Ultima modificare: Aprilie 03, 2007, 10:32:16 de către Brestin Sebastian » Memorat
Bluedrop_demon
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #89 : Aprilie 03, 2007, 10:40:09 »

Si daca ultimul caracter e spatiu ( ' ' ) sau tab ?

Anyway... daca nici asa nu merge creaza cu algoritmul tau un vector pentru numerele de la 1 la 100 si posteaza-l sa ne uitam de unde nu mai e bine.  Ok
Memorat
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #90 : Aprilie 03, 2007, 11:18:01 »

deci dap m-am prins de aia si am facut:
Cod:
nre[0]=0;
i=0;
do{
fscanf(f,"%c", &nr);
if((nr>=48&&nr<=57)&&!feof(f))nre[++i]=nr-48;
}while((nr>=48&&nr<=57)&&!feof(f));
si sirul meu e ceva de genu(0-100):
0 1 5 2 8 3 9 2 8 7 7 8 4 7 3 8 4 1 5 4 4 5 9 2 8 3 9 2 8 7 1 2 8 5 1 6 2 9 3 2 8 9 3 6 2 7 3 6 2 1 5 6 2 5 1 6 2 9 3 2 2 3 2 4 0 5 1 4 0 9 9 0 6 9 5 0 6 3 7 6 6 7 1 4 0 5 1 4 0 9 3 4 0 7 3 8 4 1 5 4 0 0
Memorat
Bluedrop_demon
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #91 : Aprilie 03, 2007, 11:24:32 »

De pe pozitia 24 incolo e deja gresit. Nu-mi dau seama unde ai gresit in algoritm, poate ca intr-adevar calculez in asa fel incat iese din tipul de date pe care il folosesti ( int sau long ). Verifica cu un Brute-Force pentru 24 sa vezi ca nu mai coincide... pana nu vad algoritmul de generare nu pot sa zic mai mult, dar cred ca folosirea tipurilor e greseala.
Memorat
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #92 : Aprilie 03, 2007, 14:15:54 »

mi-am corectat greseala era doar o greseala de matematica... ce sa facem algebra asta... numa ca algorimtul nu e prea eficient si iau doar 70 ca nu intra in timp... dar o fac cu preprocesare indata si 100-a e a mea ms de sfaturi Yahoo!
« Ultima modificare: Aprilie 03, 2007, 14:28:24 de către Brestin Sebastian » Memorat
c_e_manu
Nu mai tace
*****

Karma: 56
Deconectat Deconectat

Mesaje: 243



Vezi Profilul
« Răspunde #93 : Aprilie 03, 2007, 15:06:19 »

In sfarsit am reusit sa iau 100 pcte!  Yahoo! Ms mult de sfaturi!
Memorat
florea
Strain


Karma: -3
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #94 : Aprilie 24, 2007, 21:17:39 »

imi spuneti si mie dc imi da non-zero exit status la acest program?... de calculat calculeaza foarte bine ultima cifra numai ca nu am pus inca pe numere mari....puteti incerca pe calculator si sper sa ma puteti ajuta


type vector=array[0..20]of byte;
const sum:vector=(0,1,5,2,8,3,9,2,8,7,7,8,4,7,3,8,4,1,5,4,4);
var t,i,e:integer;
    fi,fo:text;
    n,rasp:int64;
begin
     assign(fi,'cifra.in'); reset(fi);
     assign(fo,'cifra.out'); rewrite(fo);
     readln(fi,t);
     for i:=1 to t do
        begin
             readln(fi,n);
             rasp:=(n div 20)*sum[20]+sum[n mod 20];
             rasp:=rasp mod 10;
             writeln(fo,rasp);
        end;
     close(fi);
     close(fo);
end.
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #95 : Aprilie 25, 2007, 12:21:11 »

Deci..in primul rand nu este nevoie de operatii pe numere mari! (vezi ceea ce s-a scris in acest topic).  Cat despre non-zero exit status , desi nu stiu pascal, probabil returnezi vreo valoare diferita de 0; Cel mai probabil ai uitat return 0; sau ceva similar.....vezi prin documentatia despre evaluator, de pe site. Thumb up
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #96 : Aprilie 25, 2007, 13:00:45 »

in pascal nu trebuie sa pui return 0. Nush exact de ce primesti aceasta eroare, incearca sa iti pui acasa un IDE care foloseste acelasi compilator cu cel de pe infoarena (fpc nush cat), si da-ti multe teste.
Memorat
gogu
Client obisnuit
**

Karma: 42
Deconectat Deconectat

Mesaje: 98



Vezi Profilul
« Răspunde #97 : Aprilie 25, 2007, 13:07:47 »

Cel mai probabil ti se trage de la instructiune "readln(fi,n);"
Cand numarul e prea mare sa intre in int64, crapa programul.
Citeste numarul ca un string si calculeaza numarul mod 100 folosind doar ultimele doua cifre ale lui.
Si poti sa consideri n mod 20 = (n mod 100) mod 20.
Memorat
florea
Strain


Karma: -3
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #98 : Aprilie 25, 2007, 13:13:45 »

Multumesc pt sfaturi gogu,devilkind si florian,dar cauza nu era nici una din care ati spus voi....am implemenatat oricum deja de ieri al algoritm si am luat 100
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #99 : Aprilie 25, 2007, 18:18:37 »

Citat
Ce are ultimul test,ca obtin WA?Poate vi s-a intamplat si voua,nu stiti ce are?La restul testelor obtin raspuns corect(deci 90 p in total),deci nu prea imi dau seama ce poate sa se fi intamplat
Aceeasi problema o am si eu...m'am uitat pe forum si nu i'a raspuns nimeni lui Eduard... poate cineva sa spuna ce e cu ultimul test? Embarassed


Later edit:  Never mind... citeam N'ul ca pe un sir de caractere de lungime maxima 101 (luand in calcul '\n'), am modificat dimensiunea la 102 si.... se pare k functioneaza Very Happy
« Ultima modificare: Aprilie 25, 2007, 18:32:55 de către Bitis Gabriel » Memorat
Pagini: 1 2 3 [4] 5 6 ... 12   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines