#include <stdio.h>
int main()
{
int n;
while ( scanf( "%d", &n ) != EOF ) {
double sum = 0,k;
if( n > 5000000 || n<=0 ) //the judgment of the arrange
break;
for ( int i = 1; i <= n; i++ ) {
k = (double) 1 / i;
sum += k;
}
/*
for ( int i = n; i > 0; i-- ) {
k = 1 / (double)i;
sum += k;
}
*/
printf("%.12lf\n", sum);
}
return 0;
}
なぜ別のループで私は別の答えを得るのですか。フロートエラーはありますか?5000000
合計を入力する16.002164235299
と、for(表記部分)のもう一方のループを使用すると、合計が得られ16.002164235300
ます。