zoukankan      html  css  js  c++  java
  • POJ 3994:Probability One

    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 n0. 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 n0 = 37, then n1 = 111 which is odd. Now we can calculate n2 = 56, n3 = 168, and n4 = 18, which is what your friend will tell you. Doing the calculation 2 * n4 + 1 = 37 reveals n0.

    Input

    Your program will be tested on one or more test cases. Each test case is made of a single positive number (0 < n0 < 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;
    }
    


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    net core 上传并使用EPPlus导入Excel文件
    mysql 动态行转列
    Net Core2.0 升级到.Net Core 2.1
    把旧系统迁移到.Net Core 2.0 日记 (13) --图形验证码
    把旧系统迁移到.Net Core 2.0 日记 (12) --发布遇到的问题
    TCP传输协议
    css命名规范: BEM 的命名法
    http与https
    网络通信原理和过程
    PWA,SPA,MPA
  • 原文地址:https://www.cnblogs.com/lightspeedsmallson/p/4899549.html
Copyright © 2011-2022 走看看