POJ 1003

来源:互联网 发布:fireworks cs6 mac 编辑:程序博客网 时间:2024/05/03 09:26

Description

How far can you make a stack of cards overhang a table? If you have one card, you can create a maximum overhang of half a card length. (We're assuming that the cards must be perpendicular to the table.) With two cards you can make the top card overhang the bottom one by half a card length, and the bottom one overhang the table by a third of a card length, for a total maximum overhang of 1/2 + 1/3 = 5/6 card lengths. In general you can make n cards overhang by 1/2 + 1/3 + 1/4 + ... + 1/(n + 1) card lengths, where the top card overhangs the second by 1/2, the second overhangs tha third by 1/3, the third overhangs the fourth by 1/4, etc., and the bottom card overhangs the table by 1/(n + 1). This is illustrated in the figure below.



Input

The input consists of one or more test cases, followed by a line containing the number 0.00 that signals the end of the input. Each test case is a single line containing a positive floating-point number c whose value is at least 0.01 and at most 5.20; c will contain exactly three digits.

Output

For each test case, output the minimum number of cards necessary to achieve an overhang of at least c card lengths. Use the exact output format shown in the examples.

Sample Input

1.003.710.045.190.00

Sample Output

3 card(s)61 card(s)1 card(s)273 card(s)

Source

Mid-Central USA 2001

#include <iostream>      //刚接触算法,想在博客上记录下自己的POJ历程(虽然刚开始刷)using namespace std;//224K 16MSconst int size = 300;//快速排序void Qsort(int a[], int low, int high){if (low >= high){return;}int first = low;int last = high;int key = a[first];/*用字表的第一个记录作为枢轴*/while (first < last){while (first < last && a[last] >= key){--last;}a[first] = a[last];/*将比第一个小的移到低端*/while (first < last && a[first] <= key){++first;}a[last] = a[first];/*将比第一个大的移到高端*/}a[first] = key;/*枢轴记录到位*/Qsort(a, low, first - 1);Qsort(a, first + 1, high);}int main(){float c[100];for (int i = 0; i < 100; i++){  std::cin >> c[i];  if (c[i] == 0.00)  break;}for (int i = 0; i < 100; i++){float n;float sum; int t[size];for (int j = 0; j < size; j++){t[j] = 300;}int s;for (n = 2.0,s=0, sum = 0.00; n<size; n++,s++){sum = sum + 1/n;float x = sum - c[i];if(x>0){t[s] = int(n-1);}}Qsort(t, 0, sizeof(t) / sizeof(t[0]) - 1);if (c[i] == 0.00){break;}if (c[i] != 0.00){cout << t[0] << " card(s)" << endl;}}return 0;}
                                             
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 在学校有人打我怎么办 孩子在学校不爱说话怎么办 孩子上幼儿园不和小朋友玩怎么办 遇到有人要打你怎么办 被表白了怎么办神回复 学校要发展我该怎么办 如果有人要打你怎么办 梦见有人要杀我怎么办 如果有人要杀我怎么办 梦到有人要杀我怎么办 感觉有人要杀我怎么办 我很自卑 没自信怎么办 如果在学校被打怎么办 如果有人打我该怎么办 别人要砍我我怎么办 专四两次没过怎么办 3岁宝宝害羞胆小怎么办 人太老实被欺负怎么办 在外面被欺负了怎么办 同学们老欺负我怎么办 孩子在学校受欺负怎么办 来例假吃了螃蟹怎么办 流产后受风头疼怎么办 种鸽配种无精怎么办 有钱但不舍得花怎么办 黑户急用3万块钱怎么办 和室友闹矛盾了怎么办 型煤炉不好烧是怎么办 生完孩子记性差怎么办 脑子记忆力好差怎么办啊 脸和驴脸一样长怎么办 看3d电影近视眼怎么办 户籍证明不给开怎么办 迁移证过期了6天怎么办 户口迁移证丢了怎么办 地暖找平后开裂怎么办 基膜过期了用了怎么办 花洒底座坏了怎么办 零应力区大于15怎么办 手崴了手腕很疼怎么办 对恶意造谣的人怎么办