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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

夯实基础——P2084 进制转换

發布時間:2023/11/30 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 夯实基础——P2084 进制转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:https://www.luogu.org/problem/P2084

P2084 進制轉換

題目背景

題目描述

今天小明學會了進制轉換,比如(10101)2 ,那么它的十進制表示的式子就是 :

1*2^4+0*2^3+1*2^2+0*2^1+1*2^0,

那么請你編程實現,將一個M進制的數N轉換成十進制表示的式子。

注意:當系數為0時,該單項式要省略。

輸入格式

兩個數,M和N,中間用空格隔開。

輸出格式

共一行,一個十進制表示的式子。

輸入輸出樣例

輸入 #1復制 2 10101 輸出 #1復制 1*2^4+1*2^2+1*2^0

說明/提示

對于100%的數據,1<M<10,N的位數不超過1000。

這道基礎題的考點是有關于N進制的轉換問題。

關于進制轉換,我相信學過計算機的人都應有所了解,但既然寫博客的目的是記錄學習過程,夯實基礎,那在這里我還是詳細的說一下吧!

以二進制轉十進制為例:

例如:101011 ,其實就是基數為2的冪的和,也就是1*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0

公式就是:abcd.efg(2)=d*20+c*21+b*22+a*23+e*2-1+f*2-2+g*2-3(10)

小數部分暫且說(其實就是把冪依次降低)


至于十進制轉二進制的方法想必不用我多說了吧(相信你們都會

1 while(m!=0) 2 { 3 a[++k]=m%2; 4 m/=2; 5 }

?

*總的來說:

N進制轉M進制的方法:

·1.可以先全化成二進制,在轉換成M進制 (簡單但復雜)

·2.直接轉換(麻煩且容易出錯的簡便)

?

所以這道題你只要懂了進制之間的轉換關系,其實很簡單的。

1 #include <cstring> 2 #include <iostream> 3 4 using namespace std; 5 6 int n, len; 7 8 string a; 9 10 int main() 11 { 12 cin >> n >> a; 13 len = a.size() - 1; 14 int k = 0; 15 for (int i = 0; i <= len; i++) 16 if (a[i] == '0') 17 k++; 18 k = len - k; 19 int tmp = len; 20 for (int i = 0; i <= len; i++) 21 { 22 if (a[i] == '0') 23 { 24 tmp--; 25 continue; 26 } 27 else 28 { 29 cout << a[i] << "*" << n << "^" << tmp; 30 if (k) 31 { 32 cout << "+"; 33 k--; 34 } 35 tmp--; 36 } 37 } 38 return 0; 39 }

?

夯實基礎,認真做好每一道題!!!

作者:Gmax

本文版權歸作者和博客園共有,轉載請用鏈接,請勿原文轉載,Thanks?(・ω・)ノ

2019-08-10

abcd.efg(2)=d*20+c*21+b*22+a*23+e*2-1+f*2-2+g*2-3(10)

轉載于:https://www.cnblogs.com/Gmax/p/11332836.html

總結

以上是生活随笔為你收集整理的夯实基础——P2084 进制转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。