Pagini: 1 [2] 3   În jos
  Imprimă  
Ajutor Subiect: 000 Algoritmul lui Euclid  (Citit de 47485 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
tibi2012
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #25 : Octombrie 22, 2012, 19:57:00 »

Citat
In pagina problemei zice clar ca metoda cu scaderi nu intra in timp.
Mersi. Nu vazusem unde scrie chestia asta Mr. Green. Acum am refacut problema si am luat 100.
Memorat
georgealex
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #26 : Iunie 06, 2013, 22:47:04 »

nu inteleg ce este gresit la programul asta :@  Brick wall

#include<iostream>
using namespace std;
int main(){
   int i,a,b;
   cin>>a,b;
   if(a>=b){
      for(i=b;i!=0;i--)
         if(a%i==0&&b%i==0){
            cout<<i;
            break;
         }
   }
   else
      if(a<=b){
         for(i=a;i!=0;i--)
         if(a%i==0&&b%i==0){
            cout<<i;
            break;
         }
      }
}
 Angry
Memorat
TwoOfDiamonds
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #27 : Iunie 07, 2013, 08:28:38 »

Nu poti citi
Cod:
cin >> a,b;
daca vrei sa le citesti dintr-un singur input poti folosi
Cod:
cin >> a >> b; 

Aici ai mai multe detalii
http://www.cplusplus.com/reference/iostream/cin/?kw=cin
Memorat
Mr2peu
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #28 : August 23, 2013, 01:35:07 »

De la endl ti se trage. Inlocuieste-l cu "\n".
Esti zeu fratele meu  Winner 1st place, poftimn si tu, ambele cu fstream, ambele acelasi format, un singur cuvant ce am inlocuit  d'oh!.
30 puncte, "endl": http://www.infoarena.ro/job_detail/988519?action=view-source ( randul 53 )
100 puncte, '\n': http://www.infoarena.ro/job_detail/988520?action=view-source ( randul 53 )
Memorat
BossForYOU
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #29 : Februarie 27, 2014, 16:44:17 »

Poate cineva sa ma ajute si pe mine ? Imi tot spune ca nu se creaza fisierul .out la testare dar numele e scris corect... Sau o fi altceva???

#include <iostream>
#include <fstream>


using namespace std;

int main()
{
    short int T,a,b,i,d=1,aux,j;
    fstream f("euclid2.in");
    fstream g("euclid2.out");
    f>>T;
    for (i=1;i<=T;i++)
    {
        f>>a>>b;
        if (b>a)
        {
            aux=a;
            a=b;
            b=aux;
        }
        for (j=2;j<=a/2;j++)
        {
            if (a%j==0 and b%j==0)
            {
                d=j;
            }
        }
        g<<d<<"\n";
        d=1;
    }
    f.close(),g.close();
    return 0;
}
Memorat
paul_danut
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #30 : Februarie 27, 2014, 20:24:45 »

pune:

fstream f("euclid2.in",ios::in);
fstream g("euclid2.out",ios::out);

sau

ifstream f("euclid2.in");
ofstream g("euclid2.out");
Memorat
valen.valentin
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 15



Vezi Profilul
« Răspunde #31 : Iunie 22, 2014, 12:41:07 »

program euclid2;
var
f1,f2:text;
n,m,k,i:longint;
begin
assign (f1,'euclid2.in');
reset(f1);
readln (f1,m);
assign (f2,'euclid2.out');
rewrite (f2);
for i:=1 to m do begin
readln (f1,n,k);
while (n<>0) and (k<>0) do
if n>k then n:=n mod k else k:=k mod n;
if n=0 then writeln (f2,k) else
writeln (f2,n);
end;
close (f1);
close (f2);
end.
de ce 60 de puncte. Brick wall
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #32 : Iunie 22, 2014, 19:10:13 »

Timpul de executie e prea mare pe ultimul test. Incearca cu integer in loc de longint.
Memorat
valen.valentin
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 15



Vezi Profilul
« Răspunde #33 : Iunie 23, 2014, 12:36:27 »

cu integer merge 30 de puncte,o sa-l scriu mai bine in c++. Smile
Memorat
P.T.
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #34 : Ianuarie 06, 2015, 17:13:02 »

NU STIU DE CE IAU DOAR 100 PUNCTE Fighting
Memorat
VladBtz
Strain
*

Karma: -3
Deconectat Deconectat

Mesaje: 29



Vezi Profilul
« Răspunde #35 : Ianuarie 19, 2015, 21:08:33 »

NU STIU DE CE IAU DOAR 100 PUNCTE Fighting

nu stiu de ce esti asa modest
Memorat
The4Ever
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #36 : Februarie 11, 2015, 20:59:39 »

Salut! Mie mi se afiseaza decat prima pereche. Ce trebuie sa fac ca sa afisez rezultatul la toate perechile?
Memorat
ursu.daniel2202d
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #37 : Februarie 28, 2015, 15:57:18 »

De ce am doar 60 puncte? Am folosit algoritmul pentru scor maxim. In plus, am încercat și soluțiile celorlalți și tot 60 puncte primesc.
Memorat
Butnaru
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #38 : Martie 01, 2015, 15:48:47 »

Nai cum sa scoti 100 in pascal,inainte era posibil acum nu,succes,invata c++.
Memorat
madalina41724
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #39 : Ianuarie 13, 2016, 21:09:52 »

Iau 30p pe algoritm, schimb endl cu "\n" si  iau 100. Care e faza?Smile)
Memorat
Djok
Client obisnuit
**

Karma: 10
Deconectat Deconectat

Mesaje: 71



Vezi Profilul
« Răspunde #40 : Ianuarie 13, 2016, 21:22:17 »

endl face flush la output după fiecare afișare; asta face ca programul tău să ruleze mai lent.
Este recomandat să folosești '\n';
O soluție bună este #define endl '\n' .
Memorat
ReksioCroft
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #41 : Iunie 05, 2016, 01:28:49 »

Buna ziua! Recent am inceput sa ma joc cu java, si observ ca imi da 30p cu memory limit exeeded, desi in c acelasi algoritm ocupa f putin. Imi puteti explica de ce?
cod:
import java.io.*;
public class Main {
 
    public static int cmmdc( int a, int b ){
        if( b==0 )
            return a;
        else
            return cmmdc( b, a%b );
    }
    public static void main(String[] args) throws IOException{
        int n, i, a, b, d;
        StreamTokenizer fin = new StreamTokenizer( new BufferedReader( new FileReader ( "euclid2.in" ) ) );
        PrintWriter fout = new PrintWriter(new BufferedWriter( new FileWriter ( "euclid2.out" ) ) );
        fin.nextToken(); n = (int) fin.nval;
        for( i=0; i<n; i++ ){
            fin.nextToken(); a = (int) fin.nval;
            fin.nextToken(); b =(int) fin.nval;
            d = cmmdc( a, b );
            fout.println( d );
        }
        fout.close();
    }
}
Memorat
FlorinHaja
Strain
*

Karma: -8
Deconectat Deconectat

Mesaje: 29



Vezi Profilul
« Răspunde #42 : Iunie 05, 2016, 22:03:25 »

Mai întâi, încearcă să-l faci iterativ. Gândește-te că aloci mai multă memorie pe stivă la fiecare apel de funcție (mai ales dacă ai funcție recursivă).

Deci transformă funcția ta în ceva de genul:
Cod:
public static int cmmdc(int a, int b){
    int r;
    while (b){
        r = a%b;
        a = b;
        b = r;
    }
    return a;
}
Memorat
moga_florian
Strain


Karma: 4
Deconectat Deconectat

Mesaje: 12



Vezi Profilul
« Răspunde #43 : Iunie 26, 2016, 10:38:08 »

Chiar si iterativ iese din memorie in Java.. Folosesc BufferedReader/Writer.
Memorat
ProCoder
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #44 : Martie 10, 2017, 16:00:50 »

Ce evaluator aveti?Daca pun '\n' dupa valoare imi da 0.Daca nu iau 100. Fighting
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #45 : Martie 10, 2017, 16:08:28 »

Pai tu cum ai scrie evaluatorul astfel incat sa primeasca (spre exemplu) ca output sirul "543678431" si sa se prinda ca tu voiai sa afisezi 3 raspunsuri egale cu 543, 67, respectiv 8431?  Smile
Memorat
andreimoisin
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #46 : Martie 25, 2017, 14:53:55 »

Am trimis o solutie buna pentru evaluare si am primit doar 30 de puncte, testele incorecte fiind cu limita de timp depasita. Problema este ca am trimis aceasi sursa a doua oara cu diferenta ca in aceea am scris intr-un for ++i in loc de i++ si am primit 100 de puncte. Eu nu stiu sa fie mai eficient varianta cu ++i in for si nu prea inteleg cum s-a facut aceasta departajare.
Memorat
nicolaefilat
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 6



Vezi Profilul
« Răspunde #47 : Aprilie 24, 2017, 20:18:48 »

     Nu inteleg de ce primesc doar 30 p pe sursa mea:http://www.infoarena.ro/job_detail/1973390?action=view-source

     Imi da TED la toate


     Ma ajuta cineva? Smile  Very Happy

      Mersi
Memorat
AlexandruValeanu
Vorbaret
****

Karma: 29
Deconectat Deconectat

Mesaje: 167



Vezi Profilul
« Răspunde #48 : Aprilie 24, 2017, 21:26:44 »

Inlocuieste endl-ul cu '\n'.
Memorat
babaian_daniel
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #49 : Mai 08, 2017, 11:57:52 »

#include <iostream>
#include <fstream>
using namespace std;
ifstream f("euclid2.in");
ofstream g("euclid2.out");
int main()
{
int a,b,c,d;
f>>c;
while (c>=1)
{
   f>>a>>b;
   while (a>0 && b>0){
   if (a>b) a=a%b;
   if (b>a) b=b%a;}

   c=c-1;
   if (a==0) d=b;
   if (b==0) d=a;
   g<<d<<'\n';a=0;b=0;
   
   }   
   


return 0;   
}dc nu imi merge nu inteleg?
Memorat
Pagini: 1 [2] 3   În sus
  Imprimă  
 
Schimbă forumul:  

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