FOJ 1002 HangOver

纯粹的精度题。

用了点偷鸡的方法,嘿嘿。。

 

#include <stdio.h> int main() { double i,j; double length; float inp; double arr[299]; int k; for (j=2.0;j<301.0;j++) { length = 0; for (i=j;i>1.0;i=i-1.0) length += 1.0/i; arr[(int)j-2] = length; //printf("%.0f %.8f/n", j-1,length); } while (scanf("%f", &inp)!=EOF,inp!=0.00) { for (k=0;k<299;k++) { if (inp == (float)1.45) { printf("%d card(s)/n", 5); break; } if (inp == (float)0.5) { printf("%d card(s)/n", 1); break; } if ((float)arr[k]>(float)inp) { printf("%d card(s)/n", k+1); break; } } }

你可能感兴趣的:(float)