http://poj.org/problem?id=1003
装个逼,用动态内存分配。
<span style="font-size:18px;">#include <stdio.h>
#include <malloc.h>
int main()
{
float* num;
float n,sum;
int i = 0,j,temp;
scanf("%f",&n);
while(n != 0.00) /*输入测试样例*/
{
if(i == 0)
num = (float*)malloc(sizeof(float));
else
num = (float*)realloc(num,(i+1)*sizeof(float));
num[i++] = n;
scanf("%f",&n);
}
temp = i;
for(i = 0; i < temp; i++ ) /*遍历测试样例*/
{
sum = 0.0;
j = 2;
while(1)
{
sum += 1.0/j;
if(sum >= num[i])/*数列的和大于等于测试样例*/
break;
j++;
}
printf("%d card(s)\n",j-1);
}
free(num);
return 0;
}
</span>