•devilkind
|
|
« 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
|
|
« 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
|
|
|
Memorat
|
|
|
|
•c_e_manu
|
|
« Răspunde #77 : Aprilie 02, 2007, 19:47:52 » |
|
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 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
Mesaje: 66
|
|
« 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
|
|
« Răspunde #79 : Aprilie 02, 2007, 20:24:46 » |
|
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!
|
|
|
Memorat
|
|
|
|
•razyelx
Client obisnuit
Karma: 0
Deconectat
Mesaje: 82
|
|
« 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
Mesaje: 66
|
|
« 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!
|
|
|
Memorat
|
|
|
|
•razyelx
Client obisnuit
Karma: 0
Deconectat
Mesaje: 82
|
|
« 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
Mesaje: 66
|
|
« Răspunde #83 : Aprilie 02, 2007, 22:47:38 » |
|
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
Mesaje: 82
|
|
« 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
Mesaje: 66
|
|
« Răspunde #85 : Aprilie 02, 2007, 23:18:39 » |
|
M-am inselat... chiar merge Am facut eu o greseala la verificare 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
|
|
« Răspunde #86 : Aprilie 03, 2007, 09:57:44 » |
|
oops, my bad! Peace No problem...se mai intampla
|
|
« Ultima modificare: Aprilie 03, 2007, 10:08:36 de către Cinca Emanuel »
|
Memorat
|
|
|
|
•c_e_manu
|
|
« Răspunde #87 : Aprilie 03, 2007, 09:59:16 » |
|
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
Mesaje: 82
|
|
« 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: 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
Mesaje: 66
|
|
« 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.
|
|
|
Memorat
|
|
|
|
•razyelx
Client obisnuit
Karma: 0
Deconectat
Mesaje: 82
|
|
« Răspunde #90 : Aprilie 03, 2007, 11:18:01 » |
|
deci dap m-am prins de aia si am facut: 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
Mesaje: 66
|
|
« 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
Mesaje: 82
|
|
« 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
|
|
« Ultima modificare: Aprilie 03, 2007, 14:28:24 de către Brestin Sebastian »
|
Memorat
|
|
|
|
•c_e_manu
|
|
« Răspunde #93 : Aprilie 03, 2007, 15:06:19 » |
|
In sfarsit am reusit sa iau 100 pcte! Ms mult de sfaturi!
|
|
|
Memorat
|
|
|
|
•florea
Strain
Karma: -3
Deconectat
Mesaje: 6
|
|
« 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
|
|
« 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.
|
|
|
Memorat
|
|
|
|
•devilkind
|
|
« 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
Mesaje: 98
|
|
« 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
Mesaje: 6
|
|
« 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
|
|
« Răspunde #99 : Aprilie 25, 2007, 18:18:37 » |
|
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? 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
|
|
« Ultima modificare: Aprilie 25, 2007, 18:32:55 de către Bitis Gabriel »
|
Memorat
|
|
|
|
|