進製轉換
背景 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 按照進製轉換的公式,得出的餘數要反過來輸出。所以要先把計算出的餘數儲存在陣列中,但是陣列...