2014年7月16日 星期三

uva 575 Skew Binary

把字串讀進來, 按照每個 digit 的權重做計算即可。

注意:如果是讀整個字串進來,至少長度為 2,因為有 newline。


#include <stdio.h>
#include <stdlib.h>

int main(void){
    char input[100];
    int base,num,i;

    while(fgets(input,100-1,stdin)!=NULL){
        /* consider newline => strlen at least 2 */
        if(strlen(input)==2 && input[0]=='0') break;

        num=0; base=2;
        for(i=strlen(input)-2 ; i>=0 ; i--, base*=2){
            num += (base-1) * (input[i]-'0');
        }

        printf("%d\n",num);
    }


    return 0;
}

沒有留言:

張貼留言