10进制转换成其他进制-短除法
生活随笔
收集整理的這篇文章主要介紹了
10进制转换成其他进制-短除法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
將10進制下的n轉換成b進制下的數。
代碼如下:
char get(int x) {if (x<=9) return x+'0';return x-10+'A'; }string base(int n,int b) {string num;while(n) num += get(n%b),n/=b;reverse(num.begin(),num.end());return num; }例題:
回文數是指數字從前往后讀和從后往前讀都相同的數字。
例如數字 12321 就是典型的回文數字。
現在給定你一個整數 B,請你判斷 1~300 之間的所有整數中,有哪些整數的平方轉化為 B 進制后,其 B 進制表示是回文數字。
輸入格式
一個整數 B。
輸出格式
每行包含兩個在 B 進制下表示的數字。
第一個表示滿足平方值轉化為 B 進制后是回文數字那個數,第二個數表示第一個數的平方。
所有滿足條件的數字按從小到大順序依次輸出。
數據范圍
2≤B≤20,
對于大于 9 的數字,用 A 表示 10,用 B 表示 11,以此類推。
代碼如下:
#include <iostream> #include <cstring> #include <algorithm> using namespace std;char get(int b) {if (b<=9) return b+'0';return b-10+'A'; }string base(int n,int b) {string num;while(n) num+=get(n%b),n/=b;reverse(num.begin(),num.end());return num; }bool check(string num) {for (int i = 0,j = num.size()-1;i<j;i++,j--){if (num[i]!=num[j]) return false;}return true; } int main() {int b;cin>>b;for (int i = 1;i<=300;i++){string num = base(i*i,b);if (check(num)){cout<<base(i,b)<<" "<<num<<endl;}}return 0; }總結
以上是生活随笔為你收集整理的10进制转换成其他进制-短除法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 酸辣粉的功效与作用、禁忌和食用方法
- 下一篇: 红糖醪糟的功效与作用、禁忌和食用方法