c 相鄰數字不等比skew數

2021-06-16 17:16:07 字數 994 閱讀 5556

在 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

樣例輸入

10120

200000000000000000000000000000

101000000000000000000000000000000

11100

11111000001110000101101102000

0

樣例輸出

44

2147483646

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...