日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

进制转换(洛谷-P1017)

發(fā)布時(shí)間:2025/3/17 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 进制转换(洛谷-P1017) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目描述

我們可以用這樣的方式來(lái)表示一個(gè)十進(jìn)制數(shù): 將每個(gè)阿拉伯?dāng)?shù)字乘以一個(gè)以該數(shù)字所處位置的(值減?1?)為指數(shù),以?10?為底數(shù)的冪之和的形式。例如:?123 可表示為?1*10^2+2\*10^1+3*10^0?這樣的形式。

與之相似的,對(duì)二進(jìn)制數(shù)來(lái)說(shuō),也可表示成每個(gè)二進(jìn)制數(shù)碼乘以一個(gè)以該數(shù)字所處位置的(值?-1?)為指數(shù),以?2為底數(shù)的冪之和的形式。一般說(shuō)來(lái),任何一個(gè)正整數(shù)?RR?或一個(gè)負(fù)整數(shù)??R?都可以被選來(lái)作為一個(gè)數(shù)制系統(tǒng)的基數(shù)。如果是以?R?或??R?為基數(shù),則需要用到的數(shù)碼為 0,1,....R?1?。例如,當(dāng)?R=7?時(shí),所需用到的數(shù)碼是 0,1,2,3,4,5?和?6?,這與其是?R?或??R?無(wú)關(guān)。如果作為基數(shù)的數(shù)絕對(duì)值超過(guò)?10?,則為了表示這些數(shù)碼,通常使用英文字母來(lái)表示那些大于?99?的數(shù)碼。例如對(duì)?1616?進(jìn)制數(shù)來(lái)說(shuō),用?AA?表示?1010?,用?B?表示?11,用?C?表示?12?,用?D 表示?13?,用?E?表示?14?,用?F?表示?15?。

在負(fù)進(jìn)制數(shù)中是用??R?作為基數(shù),例如??15?(十進(jìn)制)相當(dāng)于 110001?(??2?進(jìn)制),并且它可以被表示為?2?的冪級(jí)數(shù)的和數(shù):

110001=1*(-2)^5+1*(-2)^4+0*(-2)^3+0*(-2)^2+0*(-2)^1+1*(-2)^0

設(shè)計(jì)一個(gè)程序,讀入一個(gè)十進(jìn)制數(shù)和一個(gè)負(fù)進(jìn)制數(shù)的基數(shù), 并將此十進(jìn)制數(shù)轉(zhuǎn)換為此負(fù)進(jìn)制下的數(shù):?-R∈{-2,-3,-4,...,-20}

輸入輸出格式

輸入格式:

輸入的每行有兩個(gè)輸入數(shù)據(jù)。

第一個(gè)是十進(jìn)制數(shù)?N?( ?32768≤N≤32767?)
第二個(gè)是負(fù)進(jìn)制數(shù)的基數(shù)??R?。

輸出格式:

結(jié)果顯示在屏幕上,相對(duì)于輸入,應(yīng)輸出此負(fù)進(jìn)制數(shù)及其基數(shù),若此基數(shù)超過(guò)?10?,則參照?16?進(jìn)制的方式處理。

輸入輸出樣例

輸入樣例#1:

30000 -2

輸出樣例#1:

30000=11011010101110000(base-2)

輸入樣例#2:

-20000 -2

輸出樣例#2:

-20000=1111011000100000(base-2)

輸入樣例#3:

28800-16

輸出樣例#3:

28800=19180(base-16)

輸入樣例#4:

-25000 -16

輸出樣例#4:

-25000=7FB8(base-16)

思路:與正數(shù)的進(jìn)制轉(zhuǎn)換一樣,通過(guò)短除即可,要注意的是,如果某個(gè)數(shù)位出現(xiàn)負(fù)數(shù),需要從上一位借一個(gè)1來(lái)進(jìn)行運(yùn)算

源代碼

#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<string> #include<cstdlib> #include<queue> #include<set> #include<map> #include<stack> #include<ctime> #include<vector> #define INF 0x3f3f3f3f #define PI acos(-1.0) #define N 50001 #define MOD 1e9+7 #define E 1e-6 #define LL long long using namespace std; int num,m; void calculate(int n) {int k=n%m;n=n/m;if(k<0){k-=m;n++;}if(n!=0)calculate(n);if(k<10)cout<<k;elsecout<<(char)(k-10+'A'); } int main() {cin>>num>>m;cout<<num<<"=";calculate(num);cout<<"(base"<<m<<")"<<endl;return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的进制转换(洛谷-P1017)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。