POJ 3994:Probability One

30 篇文章 0 订阅

Probability One
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 1674 Accepted: 1151

Description

Number guessing is a popular game between elementary-school kids. Teachers encourage pupils to play the game as it enhances their arithmetic skills, logical thinking, and following-up simple procedures. We think that, most probably, you too will master in few minutes. Here’s one example of how you too can play this game: Ask a friend to think of a number, let’s call it n 0. Then: 

  1. Ask your friend to compute n1 = 3 * n0 and to tell you if n1 is even or odd.
  2. If n1 is even, ask your friend to compute n2 = n1/2. If, otherwise, n1 was odd then let your friend compute n2 = (n1 + 1)/2.
  3. Now ask your friend to calculate n3 = 3 * n2.
  4. Ask your friend to tell tell you the result of n4 = n3/9. (n4 is the quotient of the division operation. In computer lingo, ’/’ is the integer-division operator.)
  5. Now you can simply reveal the original number by calculating n0 = 2 * n4 if n1 was even, or n0 = 2 * n4 + 1 otherwise.

Here’s an example that you can follow: If n 0 = 37, then n 1 = 111 which is odd. Now we can calculate n 2 = 56, n 3 = 168, and n 4 = 18, which is what your friend will tell you. Doing the calculation 2 * n 4 + 1 = 37 reveals n 0.

Input

Your program will be tested on one or more test cases. Each test case is made of a single positive number (0 < n 0 < 1,000,000). 
The last line of the input file has a single zero (which is not part of the test cases.)

Output

For each test case, print the following line: 
k. B Q 
Where k is the test case number (starting at one,) B is either ’even’ or ’odd’ (without the quotes) depending on your friend’s answer in step 1. Q is your friend’s answer to step 4.

Sample Input

37
38
0

Sample Output

1. odd 18
2. even 19

把整个过程换算完了就是把原数除以2。

代码:

#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
using namespace std;

int main()
{
	int num,i=1;
	while(cin>>num)
	{
		if(num==0)
			break;
		cout<<i<<". ";
		i++;
		if(num%2)
			cout<<"odd ";
		else
			cout<<"even ";
		cout<<num/2<<endl;
	}
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值