把字串讀進來, 按照每個 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;
}
沒有留言:
張貼留言