HDU 1056

HDU 1056
一个水题可是错了好几次,原因就是在scanf    n   时输入的格式错了,应该是:%lf
//思路:首先是通过打表找到当长度取 0.01到5.20之间的数时,最多要多少张card,
//然后将张数存到length中用下表i表示张数 
#include <iostream>
#include <algorithm>
using namespace std;
#include <stdlib.h>

int main ()
{
    double length[300];
    memset ( length, 0, sizeof(length));
    for ( int i = 1; i <= 300; i ++)
    {
        for (int j = 1; j <= i; j ++)
        {
            length[i] += 1.0 / ( j + 1 );
        } 
        //printf ("%d %.2f\n", i, length[i]);
    }
    
    double n;
     while ( scanf ("%lf", &n) && n != 0.00 )
    {
          for ( int i = 1;i <= 300; i ++ )
          {
              if (  n <= length[i] )
              {
                    printf ("%d card(s)\n", i);
                    break;     
              } 
          }
    }
    system ("pause");
    return 0;
}

你可能感兴趣的:(HDU 1056)