Pagini: 1 ... 7 8 [9] 10 11 12   În jos
  Imprimă  
Ajutor Subiect: 008 Cifra  (Citit de 107280 ori)
0 Utilizatori şi 2 Vizitatori pe acest subiect.
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« 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  Applause 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  Wink
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
lsorin_94
Strain


Karma: -8
Deconectat Deconectat

Mesaje: 23



Vezi Profilul
« Răspunde #201 : Ianuarie 29, 2010, 17:46:40 »

ce inseamna non 0 exit status Huh Brick wall Brick wall Angry

poste sa imi spuna cnva de ce mu mere??
Cod:
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
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« 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 Mr. Green
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #203 : Ianuarie 29, 2010, 18:49:04 »

1. Programul tau nu este eficient
2. Vezi ca n e 10100, deci trebuie citit ca si char.
3. Trebuie sa "vezi" ca cifrele se repeta dupa un anumit numar  Thumb up
« Ultima modificare: Ianuarie 29, 2010, 18:58:28 de către Robert Simoiu » Memorat
vladtarniceru
De-al casei
***

Karma: 81
Deconectat Deconectat

Mesaje: 145



Vezi Profilul
« 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(  Think )
uite ce am facut eu:
Cod:
#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 Very Happy
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« 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:
Cod:
        f>>n;
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
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« 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 d'oh!
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #207 : Februarie 22, 2010, 15:55:10 »

La el n e numarul de teste. Numarul il stocheaza in a.
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #208 : Februarie 22, 2010, 17:43:21 »

Da , am vazut scuze, dar totusi iti merge pentru testul care e dat ?
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« 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 Smile
Memorat
vladtarniceru
De-al casei
***

Karma: 81
Deconectat Deconectat

Mesaje: 145



Vezi Profilul
« 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  Aha
dar totusi trebuie un algoritm de suma pentur numere mari

multumesc oricum sunteti cei mai tari  Very Happy
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« 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 Deconectat

Mesaje: 5



Vezi Profilul
« 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
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« 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.   Ok
Memorat
dudut
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 5



Vezi Profilul
« 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 Deconectat

Mesaje: 14



Vezi Profilul
« Răspunde #215 : Martie 22, 2010, 21:10:05 »

Cod:
#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
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« 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
Vorbaret
****

Karma: -49
Deconectat Deconectat

Mesaje: 159



Vezi Profilul
« 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
Nu mai tace
*****

Karma: -138
Deconectat Deconectat

Mesaje: 234



Vezi Profilul
« Răspunde #218 : Aprilie 17, 2010, 13:36:35 »

Puteti si mie sa imi explicati periodicitatea asta va rog ?  Very Happy
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #219 : Aprilie 17, 2010, 14:56:52 »

Puteti si mie sa imi explicati periodicitatea asta va rog ?  Very Happy
Genereaza primele 500 de sume si aranjeazale pe 5 linii a cate 100 de elemente Wink
Memorat
Super
Strain


Karma: -5
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« 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 ?

Cod:
#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
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« 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 Smile

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! Wink
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« 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 Smile
@Super Smecher  Poate iti merge tie pana 5*10^4 dar limita este 10^100.
Memorat
Super
Strain


Karma: -5
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #223 : Mai 10, 2010, 05:34:20 »

Merci!
Memorat
Patrunjel
Strain
*

Karma: -12
Deconectat Deconectat

Mesaje: 30



Vezi Profilul
« Răspunde #224 : Mai 26, 2010, 21:12:44 »

Salut...am scos si eu ceva,insa nu functioneaza cum trebuie:
Cod:
#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
Pagini: 1 ... 7 8 [9] 10 11 12   În sus
  Imprimă  
 
Schimbă forumul:  

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