SSL ZYC 2407 負進製

2022-09-03 07:12:13 字數 950 閱讀 3924

題目大意:

求乙個數的負二進位制

思路:我必須說一句:資料太水太水太水!!!!!!!

把題目描述給出的幾組資料打表。。。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==3)

if (n==4)

if (n==5)

if (n==6)

if (n==7)

if (n==8)

if (n==9)

puts("0"); //打表

return

0;}

但是沒有打。

好早就想到貪心。因為轉二進位制是可以用貪心的。所以負二進位制也有可能用貪心。

事實證明,貪心是可以過的(同學 wyc 打出來並ac了)

考後看題解,發現正解是像求二進位制一樣的取餘法。就是除以2求餘,只不過要加幾個符號而以。

ac正解**:

#include 

#include

#include

using

namespace

std;

int n,a[100001],i,j;

int main()

while (n!=0) //取餘開始

for (j=i;j>=1;j--)

printf("%d",a[j]); //倒序輸出

return

0;}

題解 負進製

借助於對數字理論的研究,奶牛們打算建立一套計數系統。它們打算建立的計數系統是二進位制的,但基數為 2,而 不是 2。另它們非常高興的是,使用 2作為基數表示數字不需要符號位。我們知道進製數每位的權 從右到左 分 別為1 基數的0次方 基數1,基數2,等等。基數為 2的情況下,每位的權分別為1,2,4...

數論 負進製轉換

首先需要明白正進製的轉換,比如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。十進位制數是負數,基數是正數 這種情況可以排除,具體...