24h購物| | PChome| 登入
2011-05-29 22:29:35| 人氣5,365| 回應1 | 上一篇 | 下一篇

a132. 10931 - Parity

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

http://zerojudge.tw/ShowProblem?problemid=a132

內容 :

整數 n 的「同位元」定義為:其二進位表示法中每位元的和再除以 2 的餘數。例如:21 = 101012 的二進位有三個 1,因此它的同位元為 3 (mod 2),或 1

在此,你要計算一個整數 1 ≤ I ≤ 2147483647 的同位元。

輸入說明 :

輸入的每一行有一個整數 I,而 I = 0 表示輸入結束,該行無需處理。

輸出說明 :

對於輸入中的每個整 I,你要印一行 The parity of B is P (mod 2).,其中 B 是 I 的二進位表示法。

範例輸入 :


1
2
10
21
0

範例輸出 :

The parity of 1 is 1 (mod 2).
The parity of 10 is 1 (mod 2).
The parity of 1010 is 2 (mod 2).
The parity of 10101 is 3 (mod 2).

提示 :

出處 :

UVa ACM 10931 (管理:snail)

/**********************************************************************************/
/*  Problem: a132 "10931 - Parity" from UVa ACM 10931                             */
/*  Language: C                                                                   */
/*  Result: AC (6ms, 276KB) on ZeroJudge                                          */
/*  Author: morris1028 at 2011-05-29 18:20:40                                     */
/**********************************************************************************/


#include<stdio.h>
int t, N;
int D(int N) {
    if(N) {
        D(N/2);
        printf("%d",N&1), t += N&1;
    }
}
main() {
    while(scanf("%d", &N) == 1 && N) {
        printf("The parity of ");
        t = 0, D(N);
        printf(" is %d (mod 2).\n", t);
    }
    return 0;
}

台長: Morris
人氣(5,365) | 回應(1)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: UVA |
此分類下一篇:d368. 10196 - Check the Check
此分類上一篇:a130. 12015 - Google is Feeling Lucky

11
& N&1 這是什麼語法0.0
2012-03-14 19:45:50
版主回應
AND運算, 用 bit 檢查, 是否最後一個 bit 為 1
2012-03-14 20:10:18
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文