在 skew binary表示中, 第 k 位的值x
k表示x
k*(2
k+1-1)。 每個位上的可能數字是0 或 1,最後面乙個非零位可以是2, 例如, 10120(skew) = 1*(2
5-1) + 0*(2
4-1) + 1*(2
3-1) + 2*(2
2-1) + 0*(2
1-1) = 31 + 0 + 7 + 6 + 0 = 44. 前十個skew數是 0、1、2、10、11、12、20、100、101、以及102。
輸入 輸入包含一行或多行,每行包含乙個整數n。 如果 n = 0 表示輸入結束,否則n是乙個skew 數
輸出 對於每乙個輸入,輸出它的十進位制表示。轉換成十進位制後, n 不超過 2
31-1 = 2147483647
樣例輸入
10120200000000000000000000000000000
101000000000000000000000000000000
11100
11111000001110000101101102000
0
樣例輸出
442147483646
3214748364747
1041110737
#include #include using namespace std;
int main()
{ int base[32],i,sum;
char s[32];
base[0]=1;
for(i=1;i<31;i++)
base[i]=2*base[i-1]+1;
while(1)
{ gets(s);
if(s[0]=='0')
break;
sum=0;
int l=strlen(s);
for(i=0;i
3 2 相鄰數字的基數不等比 skew數
問題定義 在 skew binary表示中,第 k 位的值 xk表示 xk.2k 1 1 每個位上的可能數字是 0 或1,最後面乙個非零位可以是 2,例如,10120 skew 1 2 5 1 0 2 4 1 1 2 3 1 2 2 2 1 0 2 1 1 31 0 7 6 0 44.前十個 ske...
杰哥私房題 相鄰數字的基數等比 確定進製
問題描述 6 9 42 對於十進位制來說是錯誤的,但是對於13 進製來說是正確的。即,6 13 9 13 42 13 而 42 13 4 131 2 130 54 10 你的任務是寫一段程式讀入三個整數p q 和 r,然後確定乙個進製 b 2 b 16 使得 p q r.如果 b 有很多選擇,輸出最...
53 skew數 北大複試 c
在 skew binary 表示中,第 k 位的值 x k 表示 x k 2 k 1 1 每個位上的可能數字是 0 或 1,最後面乙個非零位可以是 2,例如,10120 skew 1 2 5 1 0 2 4 1 1 2 3 1 2 2 2 1 0 2 1 1 31 0 7 6 0 44。前十個 sk...