题目:给定一个十进制数M,将其转化为N进制数,其中2<=N<=16,其中N为32为整型数;

输入:M N,如7 2

输出转化结果:111

注意点:考虑负数的情况,记得添加负号(其实直接添加负号这个办法,我觉得有点不靠谱,但是系统竟然A了,有知道这个怎么处理的,可以评论下,这样处理为什么能过,还有还可以怎么处理,谢谢大家!!);

思路:1. 使用一个辅助栈来存放M对N取余的结果(M%N);

     2. 处理余数<=9和>9两种情况,因为按照16进制,>9的数用ABCDEF取代

     3. 再更新取余后M的取值:M=M/N;

     4. 循环处理2,3两个步骤,直到M=0;

   5. 处理最终结果,出栈,直到栈为空;

代码如下:

package com.didi;import java.util.Scanner;
import java.util.Stack;public class Main {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);while(scanner.hasNext()){int M = scanner.nextInt();int N = scanner.nextInt();if(M>=0){convert(M, N);}}}public static void convert(int m, int n){if(n==10){System.out.println(m);return;}boolean flag = true;Stack<Integer> stack = new Stack<Integer>();StringBuilder str = new StringBuilder();char[] ch = {'A','B','C','D','E','F'};while(m!=0){if(m%n<10){stack.push(m%n+'0');}else{stack.push(m%n-10+'A');}m = m/n;}while(!stack.isEmpty()){if(m<0&&flag){str.append("-");flag = false;}if(stack.peek()-'0'<10){str.append(stack.pop()-'0');}else{str.append(ch[stack.pop()-'A']);}}System.out.println(str.toString());}
}

转载于:https://www.cnblogs.com/coffy/p/5902524.html

给定一个十进制数,将其转化为N进制数-----17年滴滴笔试题相关推荐

  1. 使用栈实现十进制数转化为N进制数

    /*     使用栈求解及十进制数转化为N进制数 */ #include <iostream> #include <stack> using namespace std; vo ...

  2. 输入一个十进制数N,将它转化为R进制数输出(C语言版)

    我们先拿十进制转化为二进制来举例: 我在b站上学习到十进制转为二进制的算法为: 比如:十进制9转化为二进制的步骤为 根据思路代码为: #define _CRT_SECURE_NO_WARNINGS # ...

  3. 将十进制有理数转化为m进制数(C语言实现)

    内容: 若将十进制有理数转换为r进制的数,应如何实现. 步骤: 1.算法分析: 进行算法分析前,首先需要了解一些进制转换的知识,十进制整数转换二制是采用"除2取余,逆序输出"的方法 ...

  4. (C++)除基取余法:将十进制数转化为Q进制数

    所谓基,就是指将要转换成的进制Q. 除基取余的意思就是:每次将待转换数除以Q,然后将得到的余数作为低位存储,而商则继续除以Q并重复上面的操作,直至商0时,将所有位从高到低输出就可以得到Q进制数. 代码 ...

  5. [转载] python字符串转化为16进制数_python实用知识,数值类型和进制整数的转换

    参考链接: 在Python中将整数int转换为字符串string 喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远! 1.数值类型的转换 int()可以将字符串 ...

  6. 16进制字符串转化为10进制数

    同学在MSN CDC电话面试(可惜我在被面试的时候全然没有这么具体的问题了:))中的一个题目:将16进制的字符串转化为10进制数字,例如"1A",则对应26.题目很简单,实现起来也 ...

  7. 数字转化为16进制数

    leetcode:https://leetcode-cn.com/problems/convert-a-number-to-hexadecimal/ 思路1: 数组hash存储string hex=& ...

  8. 将字符串转化为16进制数

    在有些情况下,想得到n个16进制数.然而你只能得到一个字符串数组,数组中的数据都是文本形式. 例如char *s = "1b5050508af890ef50"; 我想得到的是16进 ...

  9. 设计算法把一个十进制的整数转换成二至九进制之间的任意进制输出

    数据结构 考察栈的应用 int main() {int i,j,k,m,n;while(scanf("%d",&n)==1){cout<<"请输入进制 ...

最新文章

  1. MVP模式在Android中的应用(附UML高清大图,使用RecyclerView举例)
  2. 从零开始学 Web 之 JavaScript(三)函数
  3. L1-060 心理阴影面积 (5 分)-PAT 团体程序设计天梯赛 GPLT
  4. Nginx笔记总结十六:nginx优化指南
  5. matlab中asix off_MATLAB试卷+答案
  6. 无线通信基础(三):高斯噪声中的估计
  7. 列出各部门的最低工资MySQL_mysql练习题五
  8. deap dataset的不同分类模型的实现(1)
  9. VS2019打包生成安装文件教程(详细实操版)
  10. PHP实现队列(二)Redis 实现队列
  11. Linux学习笔记-shell脚本-log脚本函数
  12. 越狠越有饭吃,越不狠越没饭吃
  13. 车牌识别定位 matlab基本方法和操作
  14. 【计算机网络】python——socket编程(TCP/UDP)
  15. 学习AspectJ框架(一):AspectJ开发环境搭建与Hello World
  16. 【华为OD机试真题 JS】跳格子游戏
  17. 阿里推崇的大中台、小前台,什么是中台,什么是平台,有什么区别
  18. 访问学者初到美国,如何快速融入当地生活呢?
  19. 东软python培训班
  20. java怎么算数_JAVA初学者——算数运算符

热门文章

  1. FM调制的FPGA实现(三)
  2. IntelliJ Idea SpringBoot 数据库增删改查实例
  3. undefined reference to `__isoc99_sscanf‘
  4. 矩阵相似,矩阵合同,矩阵等价概念总结
  5. python 计算斐波那契数列方法,递归方法求第N项的斐波那契数
  6. 基于拉普拉斯金字塔的图像融合算法
  7. fastjson autoType is not support
  8. $vjudge-$基本算法专题题解
  9. 如何关闭系统自带的屏幕放大125%
  10. JavaScript旋转数组