UVA - 575 Skew Binary

2016-08-10

UVA - 575 Skew Binary

題目大意:根據題目給出的特殊進制轉化。

解題思路:第 K 位上的數乘以(2 ^ k - 1),所有相加。

注意:數字太大,需要以字符串形式進行輸入。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;

char str[100000000];

int main() {
	while ( scanf("%s", str) ) {
		if ( strcmp( str, "0") == 0 )
			break;
		int sum = 0;
		int len = strlen(str);
		for (int i = len-1; i >= 0; i--)
			sum += (pow(2,(len - i)) - 1) * (str[i]-'0'); 
		cout << sum << endl;
	}
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章