1024programmer Blog POJ 1003_Rumo Ruchu’s blog

POJ 1003_Rumo Ruchu’s blog

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.00
 3.71
 0.04
 5.19
 0.00
 

Sample Output

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

Source

Mid-Central USA 2001

#include  //New to the algorithm, I want to record my POJ process on the blog (although I just started brushing)
 using namespace std;
 //224K 16MS
 const int size = 300;

 //quick sort
 void Qsort(int a[], int low, int high)
 {
 if (low >= high)
 {
 return;
 }
 int first = low;
 int last = high;
 int key = a[first];/*Use the first record of the word table as the pivot*/

 while (first < last)
 {
 while (first = key)
 {
 --last;
 }

 a[first] = a[last];/*Move the one smaller than the first one to the lower end*/

 while (first < last && a[first] <= key)
 {
 ++first;
 }

 a[last] = a[first];
 /* move larger than first one to high end */
 }
 a[first] = key; /* pivot record in place */
 Qsort(a, low, first - 1);
 Qsort(a, first + 1, high);
 }
 int main()
 {
 float c[100];
 for (int i = 0; i > 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; n0)
 {
 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;
 }

This article is from the internet and does not represent1024programmerPosition, please indicate the source when reprinting:https://www.1024programmer.com/poj-1003_rumo-ruchus-blog/

author: admin

Previous article
Next article

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Us

Contact us

181-3619-1160

Online consultation: QQ交谈

E-mail: [email protected]

Working hours: Monday to Friday, 9:00-17:30, holidays off

Follow wechat
Scan wechat and follow us

Scan wechat and follow us

Follow Weibo
Back to top
首页
微信
电话
搜索