C/C++の宿題を片付けます 102代目
■ このスレッドは過去ログ倉庫に格納されています
0194デフォルトの名無しさん
2008/01/07(月) 15:56:23#include <stdio.h>
#include <stdlib.h>
int gcm_(int l, int g){
return l == 0 ? g : gcm_(g % l, l);
}
int gcm(int *in, int num){
if (num == 2) return gcm_(in[0], in[1]);
if (num > 2) return gcm_(*in, gcm(in + 1, num - 1));
return *in;
}
int main(){
int *p, n = 1;
p = malloc(sizeof(int));
if (p == NULL) return 1;
while (scanf("%d", p + n - 1) == 1) {
int *tmp = realloc(p, sizeof(int) * ++n);
if (tmp == NULL) {
free(p);
return 1;
}
p = tmp;
}
printf("%d\n", gcm(p, n - 1));
free(p);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています