TYVJ 1022 進製轉換

2021-06-19 17:22:02 字數 1793 閱讀 6652

進製轉換

背景 background

太原成成中學第3次模擬賽 第2道

描述 description

對於十進位制整數n,試求其-2進製表示。

例如,因為 1*1 + 1*-2 + 1*4 + 0*-8 +1*16 + 1*-32 = -13 ,所以(-13)_10 = (110111)_-2。

輸入格式 inputformat

乙個整數,代表要轉換的十進位制數。

輸出格式 outputformat

乙個整數,代表n的-2進製表示。

樣例輸入 sampleinput 

樣例輸出 sampleoutput 

資料範圍和注釋 hint

|n| <= 2000000000

** source

vivian snow

廣東汕頭聿懷初級中學noip第一次訓練用題

和普通進製轉換差不多,只是餘數可能為負數,相應的把負數變為整數即可

#include #include #include #include #include #include #include #include #include using namespace std;

#ifdef win

typedef __int64 ll;

#define iform "%i64d"

#define oform "%i64d\n"

#else

typedef long long ll;

#define iform "%lld"

#define oform "%lld\n"

#endif

#define si(a) scanf("%d", &(a))

#define sdi(a, b) scanf("%d%d", &(a), &(b))

#define s64i(a) scanf(iform, &(a))

#define ss(a) scanf("%s", (a))

#define sds(a, b) scanf("%s%s", (a), (b))

#define sc(a) scanf("%c", &(a))

#define pi(a) printf("%d\n", (a))

#define ps(a) puts(a)

#define p64i(a) printf(oform, (a))

#define max(a, b) ((a) > (b) ? (a) : (b))

#define min(a, b) ((a) < (b) ? (a) : (b))

#define mset(a, b) (memset((a), (b), sizeof(a)))

#define mid(l, r) ((l) + ((r) - (l))/2)

#define abs(a) ((a) >= 0 ? (a) : -(a))

#define rep(i, n) for(int (i)=0; (i) < (n); (i)++)

#define for(i, a, n) for(int (i)=(a); (i) <= (n); (i)++)

const int inf = 0x3f3f3f3f;

const double eps = 10e-9;

int ans[100];

int cnt;

int main() else

} if(cnt)

putchar('\n');

} else

return 0;

}

學校1022 進製轉換問題

description 大家都知道,計算機中是以二進位制儲存的!但是在現實生活中,我們遇到過各種各樣的進製情況,我們接觸得最多的就是十進位制,不過,生活中還存在各種進製計數的情況。例如 乙個星期七天是7進製 一年十二個月,是12進製等等。小明最近在學c語言,熟悉了c語言中的各種進製轉換問題,所以就嘗...

進製轉換記錄,PAT B1022 D進製的A B

迴圈處理 其中的x是為p進製的數字,如二進位制10001之類的,product我暫時理解為權重,y為最終十進位制結果 while的每一輪取出x的最後一位數字乘上權重,然後加到y上,然後x自除10,product權重增加,這樣下一輪x 10又可以取到x當前的最後一位 int y 0,product 1...

1022 D進製的A B

輸入兩個非負10進製整數a和b 230 1 輸出a b的d 1 d 10 進製數。輸入格式 輸入在一行中依次給出3個整數a b和d。輸出格式 輸出a b的d進製數。輸入樣例 123 456 8輸出樣例 1103 按照進製轉換的公式,得出的餘數要反過來輸出。所以要先把計算出的餘數儲存在陣列中,但是陣列...