题目:给定一个十进制数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());
}
}

给定一个十进制数,将其转化为N进制数-----17年滴滴笔试题的更多相关文章

  1. c语言将2进制数转化为10进制数(栈的初始化,进栈,出栈)

    //c语言描述 将2进制转化为10进制 #include <stdio.h> #include <stdlib.h> #include <math.h> #defi ...

  2. C#版 - Leetcode 504. 七进制数 - 题解

    C#版 - Leetcode 504. 七进制数 - 题解 Leetcode 504. Base 7 在线提交: https://leetcode.com/problems/base-7/ 题目描述 ...

  3. Java实现 LeetCode 504 七进制数

    504. 七进制数 给定一个整数,将其转化为7进制,并以字符串形式输出. 示例 1: 输入: 100 输出: "202" 示例 2: 输入: -7 输出: "-10&qu ...

  4. [Swift]LeetCode504. 七进制数 | Base 7

    Given an integer, return its base 7 string representation. Example 1: Input: 100 Output: "202&q ...

  5. 504 Base 7 七进制数

    给定一个整数,将其转化为7进制,并以字符串形式输出.示例 1:输入: 100输出: "202" 示例 2:输入: -7输出: "-10"注意: 输入范围是 [- ...

  6. 领扣(LeetCode)七进制数 个人题解

    给定一个整数,将其转化为7进制,并以字符串形式输出. 示例 1: 输入: 100 输出: "202" 示例 2: 输入: -7 输出: "-10" 注意: 输入 ...

  7. Leetcode504.Base 7七进制数

    给定一个整数,将其转化为7进制,并以字符串形式输出. 示例 1: 输入: 100 输出: "202" 示例 2: 输入: -7 输出: "-10" 注意: 输入 ...

  8. C语言-对字符串二维数组各个元素进行比较-十进制数转化为其他进制数-进行规则矩阵的输出-190225

    //编写一个函数:从传入的num个字符中找到最长的一个字符,并通过max传回该串地址. //重点:切记这里a[0]就是一个地址. #include<conio.h> #include< ...

  9. 一本通1649【例 2】2^k 进制数

    1649:[例 2]2^k 进制数 时间限制: 1000 ms         内存限制: 524288 KB [题目描述] 原题来自:NOIP 2006 提高组 设 r 是个 2k 进制数,并满足以 ...

随机推荐

  1. Hanlp中文自然语言处理入门介绍

    自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部分.这个星球上有许多生物拥有超过人类的视 ...

  2. Linux系统Centos安装Python3.7

    Linux下默认系统自带python2.7的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装py ...

  3. C# DateTime 月第一天和最后一天 取法

    取得某月和上个月第一天和最后一天的方法 /// <summary> /// 取得某月的第一天 /// </summary> /// <param name="d ...

  4. iPhone激活策略知识讲解:官方解锁和黑解

    iPhone激活策略知识讲解:官方解锁和黑解 [复制链接]     LEECHY 该用户从未签到 1372 XY豆 438 帖子 440 贡献 苹果花 积分 2250 发消息 电梯直达 楼主    发 ...

  5. box-shadow 边框样式

    如下 box-shadow: 0 1px 3px 0 rgba(0,0,0,.2), 0 1px 1px 0 rgba(0,0,0,.14), 0 2px 1px -1px rgba(0,0,0,.1 ...

  6. java学习之路之javaSE基础2

    java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...

  7. 启动ECLIPSE时,提示failed to create the java virtual machine

    修改eclipse.ini中的-XX:MaxPermSize=256M 这一项的原始值是512M.

  8. 合并Dev BPL教程

    一.准备工具 1.Devexpress vcl 14.2.2 下载地址http://download.csdn.net/user/rfjbco,共用个包,下载后解压,程序目录已带有DxAutoInst ...

  9. js判断是android访问还是ios访问

    原文地址:http://blog.csdn.net/wy978651775/article/details/9014039 该博主也是转载的,但是没有标明出处. 判断原理: JavaScript是前端 ...

  10. ESXI服务器的四个网口负载均衡

    什么是NIC Team(负载均衡) NIC Team其实就是将多个物理网卡同时分配到相同的端口/端口组,目的是为了实现带宽聚合,负载均衡以及故障转移 配置NIC Team 一.选择一台ESXi主机,打 ...