RosettaCodeData/Task/Harmonic-series/C/harmonic-series.c
2024-10-16 18:07:41 -07:00

24 lines
492 B
C

#include <stdio.h>
#include <stdlib.h>
/* return nth harmonic number */
double harmonic(int n) {
double h, i;
h = 0;
for (i = 1; i <= (double) n; i += 1.0)
h += 1 / i;
return h;
}
int main(void) {
int i, n;
printf("First 20 harmonic numbers:\n");
for (i = 1; i <= 20; i++)
printf("%2d %8.6lf\n", i, harmonic(i));
for (i = 1; i <= 5; i++) {
int n = 2;
while (harmonic(n) <= (double) i) n++;
printf("First term > %d is at position %d\n", i, n);
}
return EXIT_SUCCESS;
}