题目大意:把一个数转化成斜进制。
解题思路:按照题目所给公式即可。
注意点:所输入的数超过了 int 的范围,n 不能为 int 型。
#include<iostream>
#include<cstdio>
#include<string.h>
#include<math.h>
using namespace std;
int main() {
int k , save , val, l;
char n[50];
while(scanf("%s",n ) ){
if(!strcmp(n,"0")) break;
val = 0;
l = strlen(n);
for( k = 0; k < l ;k++ ) {
val += (int(n[k]) - 48)* ( pow(2,(l -k)) -1 ) ;
}
cout << val <<endl;
}
return 0;
}