输入一个基数b和一个正整数n(十进制),输出n的b进制表示。
#include <iostream> (720)#include <stack> using namespace std; /** * 一个十进制整数转换为二至九进制之间的任意进制数输出 * @param Ary :要转换的进制 * @param num :要转换的数 */ void Dec_To_All( int num,int Ary) { int temp = 0; stack<int> number_stack; if (Ary > 1 && Ary < 10) { while (1) { temp = num % Ary; //进制转换 number_stack.push(temp); //压栈 num = num / Ary; //计算剩余数 if (num == 0) break; } while (!number_stack.empty()) { cout << number_stack.top(); //得到栈顶元素 number_stack.pop(); //出栈 } }else if(Ary == 10) cout << num << endl; } int main(){ int num = 0,ary = 0; cin >> num >> ary; Dec_To_All(num,ary); return 0 ; }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); long n = Long.parseLong(scanner.next()); int b = Integer.parseInt(scanner.next()); if(b>=2&&b<=10&&n<=10000) { System.out.println( transform(n, b)); } } public static String transform(long num, int destDecimal) { if(destDecimal==10){ return num+""; } StringBuilder result = new StringBuilder(); while (num > 0) { long a = num % destDecimal; result.append(a); num /= destDecimal; } return result.reverse().toString(); } }
#include<iostream> #include<vector> #include <algorithm> using namespace std; int main() { long long nums,jz; cin >> nums >> jz; if(nums > 0) { vector<int> v; while(nums) { v.push_back(nums%jz); nums /= jz; } reverse(v.begin(),v.end()); auto it = v.begin(); char a[] = "ABCDEF"; while(it != v.end()) { if(*it > 9) cout << a[*it - 10]; else cout << *it; ++it; } cout << endl; } else cout << 0 << endl; return 0; }