0
点赞
收藏
分享

微信扫一扫

【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换

本文已收录于专栏

​​《Java入门一百例》​​



学习指引

  • ​​序、专栏前言​​
  • ​​一、【例题1】​​
  • ​​2、解题思路​​
  • ​​3、模板代码​​
  • ​​4、代码解析​​
  • ​​二、推荐专栏​​
  • ​​三、课后习题​​

序、专栏前言

   本专栏开启,目的在于帮助大家更好的掌握学习​​Java​​​,特别是一些​​Java学习者​​难以在网上找到系统地算法学习资料帮助自身入门算法,同时对于专栏内的内容有任何疑问都可在文章末尾添加我的微信给你进行一对一的讲解。
   但最最主要的还是需要独立思考,对于本专栏的所有内容,能够进行完全掌握,自己完完全全将代码写过一遍,对于算法入门肯定是没有问题的。
   算法的学习肯定不能缺少总结,将学过的知识进行打卡,以此来进行巩固以及复习。
  学好算法的唯一途径那一定是题海战略,大量练习的堆积才能练就一身本领。专栏的任何题目我将会从【题目描述】【解题思路】【模板代码】【代码解析】等四板块进行讲解。

一、【例题1】

  给定一个【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_十进制进制的整数【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_java_02,请你输出它的十进制表示的值。【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_java_03

2、解题思路

  题目难度:⭐️⭐️

  首先题意已告诉我们【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_java_04不超过【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_算法_05,所以我们不需要担心出现字符与数字转换的情况。对于该种情况,我们也有一套公式来帮助我们进行转换:假设假设【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_java_04进制整数【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_算法_07从右往左数【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_十进制_08位数【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_java_09,那么仅第【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_十进制_10位转换为十进制的值是:
【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_开发语言_11
  当然那只是考虑到某个位数,对于每一位不为【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_开发语言_12的数,我们都要把它转换为十进制然后加起来才是最终结果。
【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_算法_13
  ​​​len​​​是【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_算法_07的长度,对于【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_算法_07上每一位非【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_开发语言_12的数字我们都要通过【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_c语言_17公式转换后累加。
  例如有一个二进制数​​​(10101)​​​,首先看最右边的一位​​1​​​,从右往左数是​​1​​​位,所以【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_十进制_18。同理得【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_java_19
【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_java_20。累加得到的结果是​​​21​​​,所以​​(10101)​​​的十进制表示是​​21​​。

3、模板代码

import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
String s=sc.next();
int len=s.length();
int pre=1;
int res=0;
for (int i=len-1;i>=0;i--){
int h=s.charAt(i)-'0';
res= (int) (res+h*Math.pow(x,pre-1));
pre++;
}
System.out.println(res);
}
}

4、代码解析

  • 【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_算法_21为了方便操作,我们将​​​x​​​进制下的数组​​s​​当作字符串读入进行操作。
  • 【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_开发语言_22​​​Math.pow​​​是一个库函数,当参数为​​(int a,int b)​​​时,返回【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_java_23的值。
  • 【第12天】给定一个X进制数字A,请你把它转换为十进制打印 | 进制转换_十进制_24​​​pre​​​的作用类似一个指针,代表我们当前这一位数是从右往左数的第几位。

举报

相关推荐

0 条评论