•wefgef
|
 |
« Răspunde #200 : Decembrie 27, 2009, 23:35:28 » |
|
eu facui testul ala care il dati pe site da exact... si evaluarea imi da 0  si nu mai contraziceti ca sigur aveti probleme in sistem! E imposibil ca sa aiba ceva Cat de mari pot fi numerele din fisierul de intrare? Tipul de date int poate retine numere din ce interval? Incearca sa iti dai un test maxim. Apropo, de obicei ne face placere sa ii ajutam pe cei care au nelamuriri, dar s-ar putea sa ii deranjeze pe unii dintre useri (printre care ma numar si eu) atitudinea de atotstiutor a unui utilizator cu 2 probleme rezolvate 
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•lsorin_94
Strain
Karma: -8
Deconectat
Mesaje: 23
|
 |
« Răspunde #201 : Ianuarie 29, 2010, 17:46:40 » |
|
ce inseamna non 0 exit status  poste sa imi spuna cnva de ce mu mere?? program cifra; var i,s,k,x,j:longint; f,t:text;
function prod(x:longint) :longint; var i,s:longint; begin x:=x mod 10; s:=1; for i:=1 to x do begin s:=s*x; s:=s mod 10; end; prod:=s; end;
begin assign(f,'cifra.in'); reset(f); assign(t,'cifra.out'); rewrite(t); read(f,k); {------------------} for i:=1 to k do begin s:=0; read(f,x); for j:=1 to x do begin s:=s+prod(j); if s>10 then s:=s mod 10; end; writeln(t,s); end; {------------------} close(f); close(t); end.
Editat de admin: Nu posta consecutiv pe aceeasi tema. Modifica mesajele anterioare! Foloseste tag-ul [ code ] [ /code ] cand postezi cod. Exista un buton ajutator pentru asta langa emoticoane, pe care se pare ca le-ai gasit.
|
|
« Ultima modificare: Ianuarie 29, 2010, 18:31:35 de către Paul-Dan Baltescu »
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #202 : Ianuarie 29, 2010, 18:35:59 » |
|
Pentru Non-zero exit status citeste documentatia despre evaluator. Pentru a afla de ce nu merge programul tau, citeste atent ce s-a mai discutat in acest topic pana acum.
|
|
|
Memorat
|
Am zis 
|
|
|
•SpiderMan
|
 |
« Răspunde #203 : Ianuarie 29, 2010, 18:49:04 » |
|
1. Programul tau nu este eficient 2. Vezi ca n e 10 100, deci trebuie citit ca si char. 3. Trebuie sa "vezi" ca cifrele se repeta dupa un anumit numar 
|
|
« Ultima modificare: Ianuarie 29, 2010, 18:58:28 de către Robert Simoiu »
|
Memorat
|
|
|
|
•vladtarniceru
|
 |
« Răspunde #204 : Februarie 21, 2010, 20:55:46 » |
|
sigur nu sunt gresite testele?adica iau 0 puncte si imi da bine pentru exemplu.uite ideea mea: ca sa calculam ultima cifra trebuie sa calculam doar suma ultimelor cifre.doar ca si asta ar fi cam mult.asa ca,intr-un vector separat retii sumele astfel: poz 1:ucif(1^1) poz 2:ucif(1^1)+ucif(2^2) poz 3:ucif(1^1)+ucif(2^2)+ucif(3^3) ... si de fiecare data eu afisezi v[ucif a lui n](deoarece ucif(1^1+2^2+...+9^9)=0,deci ne va interesa doar ultima cifra(adica restul impartirii la 10),pentru ca celelalte vor avea suma 0) si algoritmul asta ia 0 puncte(  ) uite ce am facut eu: #include<fstream.h> #include<string.h> ifstream f("cifra.in"); ofstream g("cifra.out"); int main(){ char a[101]; int v[10],n,i,l; v[0]=0; v[1]=1; v[2]=5; v[3]=2; v[4]=8; v[5]=3; v[6]=9; v[7]=2; v[8]=8; v[9]=7; f>>n; for(i=1;i<=n;i++){ f>>a; l=strlen(a); g<<v[a[l-1]-'0']<<"\n"; } g.close(); return 0; }
daca va dati seama care e problema va rog sa-mi spuneti 
|
|
|
Memorat
|
|
|
|
•sima_cotizo
|
 |
« Răspunde #205 : Februarie 22, 2010, 00:07:59 » |
|
E a nu-stiu-cata oara cand se subliniaza chestia asta pe forum: N poate avea 100 de cifre! Una din problemele tale e aici: Incearca sa citesti totusi paginile acestui topic si sigur vei gasi sfaturi care te vor ajuta sa rezolvi problema. Si nu, testele NU sunt gresite.
|
|
« Ultima modificare: Februarie 22, 2010, 20:09:02 de către Sima Cotizo »
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #206 : Februarie 22, 2010, 12:24:11 » |
|
Exact, si eu am zis acelasi lucru. Daca nu va uitati pe forum macar pe cerinta problemei 
|
|
|
Memorat
|
|
|
|
•klamathix
|
 |
« Răspunde #207 : Februarie 22, 2010, 15:55:10 » |
|
La el n e numarul de teste. Numarul il stocheaza in a.
|
|
|
Memorat
|
|
|
|
•SpiderMan
|
 |
« Răspunde #208 : Februarie 22, 2010, 17:43:21 » |
|
Da , am vazut scuze, dar totusi iti merge pentru testul care e dat ?
|
|
|
Memorat
|
|
|
|
•alexandru92
|
 |
« Răspunde #209 : Februarie 22, 2010, 18:08:03 » |
|
si de fiecare data eu afisezi v[ucif a lui n](deoarece ucif(1^1+2^2+...+9^9)=0,deci ne va interesa doar ultima cifra(adica restul impartirii la 10),pentru ca celelalte vor avea suma 0)
Nu este corect ce spui. Daca nu ma insel tu te bazezi pe : u(x^y)=u(x)^u(y) ce este gresit. Dar exista o formul pentru suma asta. Genereaza sa zic primele 500 de sume si o sa vezi ceva foarte interesant 
|
|
|
Memorat
|
|
|
|
•vladtarniceru
|
 |
« Răspunde #210 : Februarie 22, 2010, 19:35:07 » |
|
gata stiu care e problema eu am zis ca ucif(1^1+2^2+...+9^9)=0,dar este 7  dar totusi trebuie un algoritm de suma pentur numere mari multumesc oricum sunteti cei mai tari 
|
|
|
Memorat
|
|
|
|
•sima_cotizo
|
 |
« Răspunde #211 : Februarie 22, 2010, 20:08:32 » |
|
Trebuie sa imi cer scuze pentru tonul folosit mai sus. Totusi, vina nu este in totalitate a mea, in pregatirea voastra pentru olimpiada ar trebui sa consultati si niste sfaturi legate de identare!
|
|
|
Memorat
|
|
|
|
•dudut
Strain
Karma: 0
Deconectat
Mesaje: 5
|
 |
« Răspunde #212 : Martie 04, 2010, 21:07:24 » |
|
nu am citit tot topicul, din motive de timp, dar eu am gandit problema asa se stie ca orice numar la o putere k, ultima cifra se repeta din 4k in 4k asa ca am facut o matrice care retine puterile tuturor cifrelor spre ex: u[3][3]=7; (3^3=27) apoi , cu un for, de la 1 la n(unde n=nr a carui ultima cifra trebuie sa aflam), adun s=s%10+u[i%10][i%4] dar cand n>=13, ultima cifra nu imi mai da corect.....si nu stiu de ce... ma poate ajuta cineva?
|
|
|
Memorat
|
|
|
|
•Florian
|
 |
« Răspunde #213 : Martie 04, 2010, 22:15:09 » |
|
nu am citit tot topicul, din motive de timp
Nu iti va raspunde nimeni din aceleasi motive. 
|
|
|
Memorat
|
|
|
|
•dudut
Strain
Karma: 0
Deconectat
Mesaje: 5
|
 |
« Răspunde #214 : Martie 05, 2010, 11:24:51 » |
|
nu mai conteaza, am gasit greseala, si am generat sirul de 100 nr corect
|
|
|
Memorat
|
|
|
|
•mening12001
Strain
Karma: -13
Deconectat
Mesaje: 14
|
 |
« Răspunde #215 : Martie 22, 2010, 21:10:05 » |
|
#include<iostream.h> #include<fstream.h> int main() {long i,b,j,z,k=0,c,a; ifstream f("cifra.in"); ofstream g("cifra.out"); f>>a; for(i=1;i<=a;i++) {f>>b;k=0; for(j=1;j<=b;j++) {c=1; for(z=1;z<=j;z++) c=c*j; k=k+c;} g<<k%10<<endl;} return 0;}
nu intaleg dc da 0 puncte verificatorul sfideaza normalitatea si logica...pe toate testele afiseaza 0 pcte poti [Editat de admin] Foloseste tag-ul [ code ] [ /code ] cand postezi surse.
|
|
« Ultima modificare: Martie 22, 2010, 21:38:14 de către Savin Tiberiu »
|
Memorat
|
|
|
|
•klamathix
|
 |
« Răspunde #216 : Martie 22, 2010, 21:14:49 » |
|
#include<iostream.h> #include<fstream.h> int main() {long i,b,j,z,k=0,c,a; ifstream f("cifra.in"); ofstream g("cifra.out"); f>>a; for(i=1;i<=a;i++) {f>>b;k=0; for(j=1;j<=b;j++) {c=1; for(z=1;z<=j;z++) c=c*j; k=k+c;} g<<k%10<<endl;} return 0;}
nu intaleg dc da 0 puncte verificatorul sfideaza normalitatea si logica...pe toate testele afiseaza 0 pcte poti
n <= 10 ^ 100.
|
|
|
Memorat
|
|
|
|
•Bit_Master
|
 |
« Răspunde #217 : Aprilie 14, 2010, 16:10:28 » |
|
Eu ma gandisem la problema asta sa iau string-uri stl la citire, ca sa nu mai parcurg din nou tot sirul pana la sfarsit pentru a-i gasi lungimea. Dar gets() e mult mai rapid decat getline. Sunt ciudate diferentele astea......
|
|
|
Memorat
|
|
|
|
•dornescuvlad
|
 |
« Răspunde #218 : Aprilie 17, 2010, 13:36:35 » |
|
Puteti si mie sa imi explicati periodicitatea asta va rog ? 
|
|
|
Memorat
|
|
|
|
•alexandru92
|
 |
« Răspunde #219 : Aprilie 17, 2010, 14:56:52 » |
|
Puteti si mie sa imi explicati periodicitatea asta va rog ?  Genereaza primele 500 de sume si aranjeazale pe 5 linii a cate 100 de elemente
|
|
|
Memorat
|
|
|
|
•Super
Strain
Karma: -5
Deconectat
Mesaje: 3
|
 |
« Răspunde #220 : Mai 08, 2010, 23:33:41 » |
|
Eu cred ca solutia mea este buna iar a voastra nu este! Nu e normal, imi da ok pana la 50.000 si iau tot 0 puncte. Ce am gresit ? #include <iostream> #include <fstream> using namespace std;
#include<stdio.h>
int calcul(int n) { int ult = n%10; int ret = 0; switch(ult) { case 0: ret = 0; break; case 1: ret = 1; break; case 2: switch (n%4) { case 1: ret = 2; break; case 2: ret = 4; break; case 3: ret = 8; break; case 0: ret = 6; break; } break; case 3: switch (n%4) { case 1: ret = 3; break; case 2: ret = 9; break; case 3: ret = 7; break; case 0: ret = 1; break; } break; case 4: switch (n%2) { case 1: ret = 4; break; case 0: ret =6; break; } break; case 5: ret =5; break; case 6: ret =6; break; case 7: switch (n%4) { case 1: ret = 7; break; case 2: ret = 9; break; case 3: ret = 3; break; case 0: ret = 1; break; } break; case 8: switch (n%4) { case 1: ret = 8; break; case 2: ret = 4; break; case 3: ret = 2; break; case 0: ret = 6; break; } break; case 9: switch (n%2) { case 1: ret = 9; break; case 0: ret = 1; break; } break; } return ret; }
int ncalcul(int n) { int s = 0; for(int i=1;i<=n;i++) { s += calcul(i); if(s > 9) s = s%10; } return s; }
int main() { //78907809780 -- asta nu merge, mi imi da 2 si voua 6 , dar de ce ?
int n = 0, k = 0; freopen("cifra.in","r",stdin); freopen("cifra.out","w",stdout); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&k); int nr = k; int x = (((nr/20)%10)*4)%10; int y = ncalcul(nr%20); int z = (x+y)%10; printf("%d\n",z); //k = ncalcul(k); //printf("%d\n",k); } return 0; }
|
|
« Ultima modificare: Mai 10, 2010, 00:00:14 de către Andrei Grigorean »
|
Memorat
|
|
|
|
•sima_cotizo
|
 |
« Răspunde #221 : Mai 09, 2010, 02:29:53 » |
|
Citesti int-uri. N poate sa aiba si 100 de cifre. Deeeeci... solutia ta e gresita  Data viitoare, cand vezi ca exista solutii de 100 puncte [si chiar multe], indoieste-te de faptul ca toti ar fi gresit si doar tu ai dreptate! 
|
|
|
Memorat
|
|
|
|
•alexandru92
|
 |
« Răspunde #222 : Mai 09, 2010, 07:04:29 » |
|
dar totusi trebuie un algoritm de suma pentur numere mari
Nu, sunt necesare doar ultimile 2 cifre ale numarului  @Super Smecher Poate iti merge tie pana 5*10^4 dar limita este 10^100.
|
|
|
Memorat
|
|
|
|
•Super
Strain
Karma: -5
Deconectat
Mesaje: 3
|
 |
« Răspunde #223 : Mai 10, 2010, 05:34:20 » |
|
Merci!
|
|
|
Memorat
|
|
|
|
•Patrunjel
Strain
Karma: -12
Deconectat
Mesaje: 30
|
 |
« Răspunde #224 : Mai 26, 2010, 21:12:44 » |
|
Salut...am scos si eu ceva,insa nu functioneaza cum trebuie: #include<fstream.h> #include<iostream.h> int numars(int j); int numarp(int j); int n; int main(){ int t; ifstream fin("cifra.txt"); ofstream fout("cifra1.txt"); fin>>t; for(;t!=0;--t){ fin>>n; fout<<numars(n)<<endl;} return 0;} int numarp(int j){ int x=j,numar=1; while(x!=0){ numar=numar*n; if(numar>=10) numar%=10; --x;} return numar;} int numars(int j){ int s=0,N=n; while(N!=0){ s+=numarp(N); if(s>=10) s%=10; --N;} return s;}
Nu pot sa imi dau seama unde este problema...am simplificat treburile cat mai mult... (asta inteleg eu prin scurtarea codului,mi se pare mai simplu de citit).Pentru datele de intrare din exemplu,in fisier mie imi scrie 1 6 9 0 5.Ma poate ajuta cineva? PrecizarI: -functia numars ar trebui sa se ocupe de ultimul numar al sumei numerelor pana la y -functia numarp ar trebui sa se ocupe de ultimul numar al lui y la puterea y -intrarea/iesirea am facut-o in fisiere .txt ca sa testez programul,mi s-a parut inutil sa schimb formatul, fiindca banuiesc, ca si voi tot in .txt le testati (si mi-e o leneee... )
|
|
|
Memorat
|
|
|
|
|