题目:给定一个十进制数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. OpenWrt在没有Luci时刷机

    scp上传bin文件到root文件夹下. sysupgrade openwrt-ar71xx-generic-dragino2-squashfs-sysupgrade.bin 等待重启

  2. War包反编译过程

    War包反编译过程 很多人可以将项目编译为war发布,可是有时候得到war确看不到源码.今天分享下war反编译的过程: 1.首先下载一个小工具,在http://jd.benow.ca/官网下载jd-g ...

  3. [转] with (nolock) 解释

    本文来自:http://blog.sina.com.cn/s/blog_5fafba5e010113kr.html select * from t1 WITH(NOLOCK) select * fro ...

  4. 发布程序时出现“类型ASP.global_asax同时存在于...”错误的解决办法

    web程序发布后,通过浏览器访问程序显示如下的错误信息: 编译器错误消息: CS0433: 类型“ASP.global_asax”同时存在于“c:\WINDOWS\Microsoft.NET\Fram ...

  5. 关于安卓苹果手机安装证书抓https的关键步骤

    苹果有关键步骤!!!

  6. 微信小程序 GMT+0800 (中国标准时间) WXSS 文件编译错误

    请尝试在控制台输入openVendor() ,清除里面的wcsc wcsc.exe 然后重启工具

  7. php如何判断IP为有效IP地址

    不需要正则表达式来判断,因为在php5.2.0之后,有专门的函数来做这个判断了. 判断是否是合法IP if(filter_var($ip, FILTER_VALIDATE_IP)) { // it's ...

  8. 【Codeforces】CF 467 C George and Job(dp)

    题目 传送门:QWQ 分析 dp基础题. $ dp[i][j] $表示前i个数分成j组的最大和. 转移显然. 吐槽:做cf题全靠洛谷翻译苟活. 代码 #include <bits/stdc++. ...

  9. pig和mysql脚本对比

    测试数据位于:/home/hadoop/luogankun/workspace/sync_data/pig dept和emp表来源自oracle数据库自带的表 dept.txt ACCOUNTING ...

  10. BigDecimal空指针异常——个人应用

    背景: 将数据库统计的数据,封装成了两个BigDecimal,此时要将两个BigDecimal进行运算.其中有一个没有数据的话,会报null(不管null值在前在后) 先上解决: 我把数据库的数据进行 ...