Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
[TEMA] problema scara
Last Updated: Aug 22 2014 21:27, Started by
TheUnforgiver
, Aug 21 2014 15:05
·
0
#1
Posted 21 August 2014 - 15:05
http://campion.edu.r...ion=view&id=274
#include <iostream> #include <fstream> using namespace std; ifstream fin("scara.in"); ofstream fout("scara.out"); int main() { int nr,i,j,nr_capat,y=0,x=0; fin>>nr; nr_capat=1; while (nr>nr_capat) { if (nr_capat%2==1) nr_capat = nr_capat+7; else nr_capat = nr_capat+1; x++; y++; } while (nr_capat!=nr) { nr_capat = nr_capat -1; x=x+1; } fout<<x<<" "<<y; fin.close(); fout.close(); return 0; } am luat 55/100. nu vad ce ar fi gresit. |
#2
Posted 21 August 2014 - 15:35
Nu te infige cu for-uri in probleme de genul asta.Aici trebuie sa gasesti formule :
#include<fstream> using namespace std; ifstream f1("scara.in"); ofstream f2("scara.out"); int main() { long n,x,y; f1>>n; y=(n-1)/4; if(n%4==0) {if((n/4+1)%2) x=3-(n-1)%4+y; else x=(n-1)%4+y;} else {if((n/4)%2) x=3-(n-1)%4+y; else x=(n-1)%4+y;} f2<<x<<' '<<y; f1.close(); f2.close(); return 0;;} Pentru al doilea numar observi ca e o simpla formula y=(n-1)/4 . Pentru al doilea e putin mai dificil,dar oricum prinde-te singur,fa si tu pe foaie,nu astepta sa-ti pice ideea asa in timp ce scrii. |
#3
Posted 21 August 2014 - 16:10
cumva, on 21 august 2014 - 15:35, said:
Nu te infige cu for-uri in probleme de genul asta.Aici trebuie sa gasesti formule : #include<fstream> using namespace std; ifstream f1("scara.in"); ofstream f2("scara.out"); int main() { long n,x,y; f1>>n; y=(n-1)/4; if(n%4==0) {if((n/4+1)%2) x=3-(n-1)%4+y; else x=(n-1)%4+y;} else {if((n/4)%2) x=3-(n-1)%4+y; else x=(n-1)%4+y;} f2<<x<<' '<<y; f1.close(); f2.close(); return 0;;} Pentru al doilea numar observi ca e o simpla formula y=(n-1)/4 . Pentru al doilea e putin mai dificil,dar oricum prinde-te singur,fa si tu pe foaie,nu astepta sa-ti pice ideea asa in timp ce scrii. Cam ciudat formulele tale...Eu la x am gasit ceva mai simplu si pare sa mearga, dar din pacate nici la problema asta nu pot trimite sursa Cine poate sa imi trimita si mie sursa si sa imi zica punctajul? #include <stdio.h> int main() { FILE *f, *g; f = fopen("scara.in", "r"); g = fopen("scara.out", "w"); int x, y, n, distanta = 0; fscanf(f, "%d", &n); while((n + distanta) % 4 != 0) distanta++; y = (n - 1) / 4; if ( y % 2 == 0) x = 4 - distanta - 1; else x = y + distanta; fprintf(g, "%d %d\n", x, y); fclose(f); fclose(g); return 0; } |
#5
Posted 21 August 2014 - 16:35
Ia incearca acum:
#include <stdio.h> int main() { int x, y, n, distanta = 0; scanf("%d", &n); while((n + distanta) % 4 != 0) distanta++; y = (n - 1) / 4; if ( y % 2 == 0) x = y + 4 - distanta - 1; else x = y + distanta; printf("%d %d\n", x, y); return 0; } Acum sigur e de 100, am uitat sa pun un y la if-ul ala |
#7
Posted 21 August 2014 - 16:59
Am dat sursa proasta )))
Aia nu e cu fisiere Poti sa adaugi tu sa citeasca si sa afiseze in fisiere? Sau postez eu din nou cu fisiere? @cumva uite aici codul cu fisierele #include <stdio.h> int main() { FILE *f, *g; f = fopen("scara.in", "r"); g = fopen("scara.out", "w"); int x, y, n, distanta = 0; fscanf(f, "%d", &n); while((n + distanta) % 4 != 0) distanta++; y = (n - 1) / 4; if ( y % 2 == 0) x = y + 4 - distanta - 1; else x = y + distanta; fprintf(g, "%d %d\n", x, y); fclose(f); fclose(g); return 0; } Edited by EnachescuAlin, 21 August 2014 - 17:04. |
#9
Posted 21 August 2014 - 18:13
In fine,fa-ti si tu un cont,ca nu dureaza mult si incarca-ti propriile surse.
Edited by cumva, 21 August 2014 - 18:13. |
#10
Posted 21 August 2014 - 19:18
#include <iostream> #include <fstream> using namespace std; ifstream fin("scara.in"); ofstream fout("scara.out"); int main() { int nr,i,j,nr_capat,y=0,x=0; fin>>nr; nr_capat=1; y = (nr-1)/4; while (nr>nr_capat) { if (nr_capat%2==1) nr_capat = nr_capat+7; else nr_capat = nr_capat+1; x++; } while (nr_capat!=nr) { nr_capat = nr_capat -1; x=x+1; } fout<<x<<" "<<y; fin.close(); fout.close(); return 0; } eu vreau sa stiu ce am gresit aici |
|
#11
Posted 21 August 2014 - 20:17
Nu stiu sa-ti spun asta Am deja in minte o solutie si tu ai deja while-uri fara numar care daca in caz ca ar face ce trebuie ti-ar iesidin timp oricum . Tu chiar nu poti sa gasesti bug-ul unui program ?
|
#13
Posted 21 August 2014 - 20:49
Serios ? Ce code blocks ciudat ai ...Ai incercat sa faci proiect ?
|
#14
Posted 21 August 2014 - 21:53
normal. doar debug-ul nu-mi merge. tool-urile de debug apar cu gri
|
#16
Posted 21 August 2014 - 22:40
#18
Posted 22 August 2014 - 19:52
cumva si EnachescuAlin, nu-i dati in cap la om, e la inceput, toti am fost.
@The Unforgiver asta e o problema de formula. In algortimica tot timpu gasesti astfel de probleme, in general necesita cunostiinte de combinatorica (google it). Problema asta in schimb, e mai rastalmacita, in sensul ca nu necesita cunostiinte avasate, doar IF-uri. #include <fstream> using namespace std; ifstream is ("scara.in"); ofstream os ("scara.out"); int n, cnt; int rest, cat; int main() { is >> n; pus = false; if (n % 8 == 0 || n % 8 == 1) { rest = 0; if (n % 8 == 0) n -= 4; cat = n / 4; os << rest + cat << " " << cat;exit(0); } if (n % 4 == 0 || n % 4 == 1 ) { rest = 3; if (n % 4 == 0) n -= 4; cat = n / 4; os << rest + cat << " " << cat;exit(0); } if (n % 8 == 2 || n % 8 == 7) { rest = 1; cat = n / 4; os << rest + cat << " " << cat;exit(0); } if (n % 4 == 3 || n % 4 == 2) { rest = 2; cat = n / 4; os << rest + cat << " " << cat;exit(0); } is.close(); os.close(); return 0; } |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users