Witam, jestem nowy na forum, więc jeśli coś robię źle, to proszę powiedzcie :)
Napisałem kod, jednak po wpisaniu np. 3 2 123456789, program się po prostu zacina :/
- *Jak poprawić kod by używać rekurencji zamiast tych zbędnych? Choćby w pseudokodzie, mniej więcej, o zastosowaniach rekurencji, jakieś przykłady, bo ja jej totalnie nie ogarniam :/ * **
Bo C++ krótko znam, a rekurencja to dla mnie jedynie 'funkcja wywołująca samą siebie' i na tym koniec.
O to mój kod:
#include <stdio.h>
using namespace std;
int main()
{
int x;
long long int y, z, a, b;
scanf("%d %lld %lld", &x, &y, &z);
long long int min=z;
int tab[z+1];
int il[z+1];
for (long long int i=0; i<=z; i++) {tab[i]=0; il[i]=0;}
for (int i=0; i<x; i++)
{
scanf("%lld %lld", &a, &b);
for (long long int z=a; z<=b; z++)
{
tab[z]++;
}
}
for (long long int i=0; i<=(z-y)+1; i++)
{
for (long long int j=i; j<i+y; j++)
{
if (tab[j]<min) min=tab[j];
}
for (long long int k=1; k<=min; k++) il[k]++;
min=z;
}
printf("0 %lld \n", (z-y)+1);
for (long long int i=1; i<=z; i++) if(il[i]!=0) {printf("%lld %d \n", i, il[i]);}
return 0;
}
Dzięki wszystkim, którzy mniej więcej ogarną.
I pytanie: czy ** ++i ** jest szybsze od ** i++ ** ?
PS. Wczytujemy 3 zmienne, x, y i z, a potem 2*x zmiennych.