Pagini recente » Cod sursa (job #2924215) | Cod sursa (job #1563967) | Cod sursa (job #2766821) | Cod sursa (job #2778542) | Cod sursa (job #1711781)
#include <stdio.h>
#include <stdlib.h>
typedef struct elem{
int e,v;
struct elem* kov;
} elem;
elem* create(int a, int b){
elem* p = calloc(1,sizeof(elem));
p->e=a;
p->v=b;
p->kov=NULL;
return p;
}
void destroy(elem* ll){
if (ll->kov!=NULL)
destroy(ll->kov);
free(ll);
}
void kiir(elem* ll){
while (ll!=NULL){
printf("%d %d\n",ll->e,ll->v);
ll=ll->kov;
}
}
int main()
{
int zz, db=0, n, k,sum;
elem* fej,*akt;
FILE *f = fopen("consecutive.in","rt");
FILE *g = fopen("consecutive.out","wt");
fscanf(f,"%d",&zz);
for (int zzz=0;zzz<zz;zzz++){
fscanf(f,"%d",&n);
fej=create(0,0);
akt=fej;
k=n/2;
for (int i=n/2+1;i>0;--i){
sum=i;
for (int j=i-1;j>0;--j){
sum+=j;
if (sum==n){
db++;
akt->kov=create(j,i);
akt=akt->kov;
break;
}
if (sum>n) break;
}
}
//printf("%d\n",db);
//kiir(fej->kov);
fprintf(g,"%d\n",db);
akt=fej->kov;
while (akt!=NULL){
fprintf(g,"%d %d\n",akt->e,akt->v);
akt=akt->kov;
}
db=0;
}
fclose(f);
fclose(g);
return 0;
}