Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...

Rezultat RMN
 Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor

Discuții despre TVR Sport HD
 Cost abonament clinica privata

Tremura toata, dar nu de la ro...

Renault Android

Recomandare bicicleta e-bike 20&#...
 Bing-Content removal tool

Nu pot accesa monitorulsv.ro de l...

Cum sa elimini urmele de acnee?

Wc Geberit
 

[TEMA] problema scara

- - - - -
  • Please log in to reply
18 replies to this topic

#1
TheUnforgiver

TheUnforgiver

    Junior Member

  • Grup: Members
  • Posts: 148
  • Înscris: 04.08.2014
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
cumva

cumva

    Junior Member

  • Grup: Members
  • Posts: 167
  • Înscris: 28.08.2010
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
EnachescuAlin

EnachescuAlin

    Active Member

  • Grup: Members
  • Posts: 1,008
  • Înscris: 08.07.2013

View Postcumva, 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;
}



#4
cumva

cumva

    Junior Member

  • Grup: Members
  • Posts: 167
  • Înscris: 28.08.2010
Ai luat 45 de puncte aline.

#5
EnachescuAlin

EnachescuAlin

    Active Member

  • Grup: Members
  • Posts: 1,008
  • Înscris: 08.07.2013
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 :(

#6
cumva

cumva

    Junior Member

  • Grup: Members
  • Posts: 167
  • Înscris: 28.08.2010
Acum ai luat 0 puncte.

#7
EnachescuAlin

EnachescuAlin

    Active Member

  • Grup: Members
  • Posts: 1,008
  • Înscris: 08.07.2013
Am dat sursa proasta Posted Image)))
Aia nu e cu fisiere Posted Image
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.


#8
cumva

cumva

    Junior Member

  • Grup: Members
  • Posts: 167
  • Înscris: 28.08.2010
adaugasem si fisierele,am observat chestia aia

#9
cumva

cumva

    Junior Member

  • Grup: Members
  • Posts: 167
  • Înscris: 28.08.2010
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
TheUnforgiver

TheUnforgiver

    Junior Member

  • Grup: Members
  • Posts: 148
  • Înscris: 04.08.2014
#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
cumva

cumva

    Junior Member

  • Grup: Members
  • Posts: 167
  • Înscris: 28.08.2010
Nu stiu sa-ti spun asta Posted Image  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 ?

#12
TheUnforgiver

TheUnforgiver

    Junior Member

  • Grup: Members
  • Posts: 148
  • Înscris: 04.08.2014
nu imi merge debug-ul la code blocks.

#13
cumva

cumva

    Junior Member

  • Grup: Members
  • Posts: 167
  • Înscris: 28.08.2010
Serios ? Ce code blocks ciudat ai ...Ai incercat sa faci proiect ?

#14
TheUnforgiver

TheUnforgiver

    Junior Member

  • Grup: Members
  • Posts: 148
  • Înscris: 04.08.2014
normal. doar debug-ul nu-mi merge. tool-urile de debug apar cu gri

#15
EnachescuAlin

EnachescuAlin

    Active Member

  • Grup: Members
  • Posts: 1,008
  • Înscris: 08.07.2013
nu stii sa-l folosesti.

#16
cumva

cumva

    Junior Member

  • Grup: Members
  • Posts: 167
  • Înscris: 28.08.2010

View PostEnachescuAlin, on 21 august 2014 - 22:05, said:

nu stii sa-l folosesti.

Asta cred si eu

#17
TheUnforgiver

TheUnforgiver

    Junior Member

  • Grup: Members
  • Posts: 148
  • Înscris: 04.08.2014
credeti ce vreti

#18
matamata123

matamata123

    Junior Member

  • Grup: Members
  • Posts: 164
  • Înscris: 14.08.2012
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

Second Opinion 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

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate