ALGO-45 VIP試題 調和數列問題
/*
問題描述
輸入一個實數x,求最小的n使得,1/2+1/3+1/4+...+1/(n+1)>=x。
輸入的實數x保證大於等於0.01,小於等於5.20,並且恰好有兩位小數。
你的程序要能夠處理多組數據,即不停地讀入x,如果x不等於0.00,則計算答案,
否則退出程序。
輸出格式爲對於一個x,輸出一行n card(s)。其中n表示要計算的答案。
輸入格式
分行輸入x的具體數值
輸出格式
分行輸出n的數值,格式爲n card(s)
樣例輸入
1.00
3.71
0.04
5.19
0.00
樣例輸出
3 card(s)
61 card(s)
1 card(s)
273 card(s)
*/
#include<stdio.h>
int main(void)
{
int i;
double x,k,he;
scanf("%lf",&x);
while(x!=0)
{
he = 0;
for(i = 2 ; x >= he ;i ++)
{
k = 1.0/i;
he += k;
if(he >= x)
{
printf("%d card(s)\n",i-1);
break;
}
}
scanf("%lf",&x);
}
return 0;
}
問題描述
輸入一個實數x,求最小的n使得,1/2+1/3+1/4+...+1/(n+1)>=x。
輸入的實數x保證大於等於0.01,小於等於5.20,並且恰好有兩位小數。
你的程序要能夠處理多組數據,即不停地讀入x,如果x不等於0.00,則計算答案,
否則退出程序。
輸出格式爲對於一個x,輸出一行n card(s)。其中n表示要計算的答案。
輸入格式
分行輸入x的具體數值
輸出格式
分行輸出n的數值,格式爲n card(s)
樣例輸入
1.00
3.71
0.04
5.19
0.00
樣例輸出
3 card(s)
61 card(s)
1 card(s)
273 card(s)
*/
#include<stdio.h>
int main(void)
{
int i;
double x,k,he;
scanf("%lf",&x);
while(x!=0)
{
he = 0;
for(i = 2 ; x >= he ;i ++)
{
k = 1.0/i;
he += k;
if(he >= x)
{
printf("%d card(s)\n",i-1);
break;
}
}
scanf("%lf",&x);
}
return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.