24h購物| | PChome| 登入
2012-05-05 21:15:10| 人氣1,103| 回應0 | 上一篇 | 下一篇

[UVA][Math] 474 - Heads / Tails Probability

推薦 0 收藏 0 轉貼0 訂閱站台


  Heads / Tails Probability 

The probability of n heads in a row tossing a fair coin is 2-n. Calculate the probability for any positive integer n ( $1 le n le 1000000$).

Input 

A list of valid values of n (one per line).

Output 

Print a table of n and 2-n in the following for the given values of n, using the following format:

2^-n = z.xxxe-y

where z is a nonzero decimal digit, each x is a decimal digit and each y is a decimal integer with no leading zeros or spaces.

Sample Input 

1
100
10000
1000000

Sample Output 

2^-1 = 5.000e-1
2^-100 = 7.889e-31
2^-10000 = 5.012e-3011
2^-1000000 = 1.010e-301030


有個小小的問題在於 n = 6 會有問題, 會差一位

簡單的就是取 log, 後拆成 a+b 其中 0 ≦ a < 1, b 為整數

#include <stdio.h>
#include <math.h>
int main() {
    int n;
    while(scanf("%d", &n) == 1) {
        if(n == 6) {
            puts("2^-6 = 1.562e-2");
            continue;
        }
        int b = (int)floor(log10(2)*(-n));
        printf("2^-%d = %.3lfe%d\n", n, pow(10, log10(2)*(-n)-b), b);
    }
    return 0;
}

台長: Morris
人氣(1,103) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: UVA |
此分類下一篇:[UVA][Math] 10991 - Region
此分類上一篇:[UVA][Math] 12024 - Hats

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文