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

简介: Problem Description As we know , we always use the decimal system in our common life, even using the computer.

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

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);
        }
    }
}
目录
相关文章
|
算法 Unix API
指数退避(Exponential backoff)在网络请求中的应用
## 一、背景 最近做云服务 API 测试项目的过程中,发现某些时候会大批量调用 API,从而导致限流的报错。在遇到这种报错时,传统的重试策略是每隔一段时间重试一次。但由于是固定的时间重试一次,重试时又会有大量的请求在同一时刻涌入,会不断地造成限流。 这让我回想起两年前在查阅[Celery Task 文档](http://docs.celeryproject.org/en/latest
15057 1
|
C# Android开发 开发者
当跨平台开发成为热点,.NET MAUI 如何触动开发者的心弦,引领未来?
【8月更文挑战第28天】在数字化浪潮中,跨平台应用开发需求激增,.NET MAUI 如新星般闪耀,为开发者指明了方向。它提供统一的 C# 和 XAML 开发体验,支持 Android、iOS、Windows 多平台应用构建,大幅提高效率,降低成本。使用 .NET MAUI,一个团队即可打造多平台流畅应用,简化工作流程。其简洁代码示例展示了强大功能与易用性,同时在性能优化方面表现出色,确保各平台上的流畅体验。加之活跃社区支持,.NET MAUI 必将推动跨平台开发迈向新高峰。
638 0
|
JSON 数据处理 API
盘点Python中4种读取JSON文件和提取JSON文件内容的方法
盘点Python中4种读取JSON文件和提取JSON文件内容的方法
4312 0
|
存储 运维 虚拟化
更改docker存储路径
更改docker存储路径
1399 0
人工智能 缓存 前端开发
9057 37
人工智能 JavaScript 开发工具
3725 9
开发工具 Swift git
1411 2
缓存 JavaScript Shell
1722 2
Shell API 调度
943 3