前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HDOJ(HDU) 2106 decimal system(进制相互转换问题)

HDOJ(HDU) 2106 decimal system(进制相互转换问题)

作者头像
谙忆
发布2021-01-21 15:36:52
2820
发布2021-01-21 15:36:52
举报
文章被收录于专栏:程序编程之旅程序编程之旅

Problem Description As we know , we always use the decimal system in our common life, even using the computer. If we want to calculate the value that 3 plus 9, we just import 3 and 9.after calculation of computer, we will get the result of 12. But after learning <>,we know that the computer will do the calculation as the following steps: 1 computer change the 3 into binary formality like 11; 2 computer change the 9 into binary formality like 1001; 3 computer plus the two number and get the result 1100; 4 computer change the result into decimal formality like 12; 5 computer export the result;

In the computer system there are other formalities to deal with the number such as hexadecimal. Now I will give several number with a kind of change method, for example, if I give you 1011(2), it means 1011 is a number in the binary system, and 123(10) means 123 if a number in the decimal system. Now I will give you some numbers with any kind of system, you guys should tell me the sum of the number in the decimal system.

Input There will be several cases. The first line of each case contains one integers N, and N means there will be N numbers to import, then there will be N numbers at the next N lines, each line contains a number with such form : X1….Xn.(Y), and 0<=Xi

代码语言:javascript
复制
import java.util.Scanner;

public class Main{

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            long sum=0;
            int n =sc.nextInt();
            String str = null;
            for(int i=0;i<n;i++){
                str =sc.next();
                String strs[] = str.split("\\(");
                int num = Integer.parseInt( strs[0]);

                String strHex = "";
                for(int j=0;j<strs[1].length();j++){
                    if(strs[1].charAt(j)!=')'){
                        strHex = strHex+strs[1].charAt(j);
                    }
                }

                int hex = Integer.parseInt(strHex);

                if(hex==10){
                    sum+=num;
                }else{
                    //hex为num这个数的进制基数。也就是说num为hex进制的数。
                    //返回的是一个十进制的数。。
                    num = Integer.parseInt(Integer.toString(num), hex);
                    sum+=num;
                }
            }

            System.out.println(sum);
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-05-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档