借助於對數字理論的研究,奶牛們打算建立一套計數系統。它們打算建立的計數系統是二進位制的,但基數為-2,而
不是+2。另它們非常高興的是,使用-2作為基數表示數字不需要符號位。我們知道進製數每位的權(從右到左)分
別為1(基數的0次方),基數1,基數2,等等。基數為-2的情況下,每位的權分別為1,-2,4,-8,16,-32,
……(從右向左)。因此,從1開始計數依次為:1, 110, 111, 100, 101, 11010, 11011, 11000, 11001
, 等等。令人驚奇的是,使用基數-2,負數也可以用1和0來表示,而且不需要符號位。例如,從-1開始向下計數
依次為:11, 10,1101, 1100, 1111, 等等。請你幫助奶牛轉換普通十進位制數(範圍-2,000,000,000…2,000,0
00,000)到基數為-2的計數系統。
輸入line 1: 乙個需要轉換的十進位制整數
輸出line 1: 乙個整數,表示輸入整數轉換為基數為-2後的結果。
輸入0,仍然輸出乙個0。
樣例輸入
-13輸出
110111
提示從右向左讀: 11 + 1-2 + 14 + 0-8 +116 + 1-32 = -13
#include using namespace std;
long long sum=0,s[10000],x=0,n;
int main()else
}else
} for(int i=sum;i>=1;i--)
} }return 0;
}
數論 負進製轉換
首先需要明白正進製的轉換,比如7轉換成二進位制,那麼7 2 3餘1,3 2 1餘1,1 2 1餘0,所以7的二進位制就是倒著寫餘數0111 那麼如果 7轉換成 2進製呢,因為 7 2 3餘 1,所以我們這個 1沒法處理,所以我們需要乙個看起來很簡單但是想不到的轉換公式 商 1 除數 餘數 除數 商 ...
進製轉化(尤其是負進製)
現在在noip的系列題上做到過進製轉化的問題,一直沒時間去搞明白,今天總算弄清楚了。123可表示為 1 102 2 101 3 100 這樣的形式。分四種情況 1。十進位制數是正數,基數是正數 這種情況最容易 2。十進位制數是正數,基數是負數 3。十進位制數是負數,基數是正數 這種情況可以排除,具體...
SSL ZYC 2407 負進製
題目大意 求乙個數的負二進位制 思路 我必須說一句 資料太水太水太水!把題目描述給出的幾組資料打表。60分!include using namespace std int n int main if n 1 if n 2 if n 3 if n 4 if n 5 if n 1 if n 2 if n...