首页 > 试题广场 >

进制A+B

[编程题]进制A+B
  • 热度指数:36013 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入一个十六进制数a,和一个八进制数b,输出a+b的十进制结果(范围-231~231-1)。

输入描述:
一行,一个十六进制数a,和一个八进制数b,中间间隔一个空格。


输出描述:
一行,a+b的十进制结果。
示例1

输入

0x12 05

输出

23

备注:
十六进制Hexadecimal一般以0x开头,例如0xFF。八进制Octal,一般以0开头,例如07。
头像 呼呼傻
发表于 2021-01-22 00:50:49
1、首先,简单粗暴的方式如下:(以c语言十六进制与八进制为例)#include <iosteam>#ibclude <cstdio>using namespace std;</cstdio></iosteam> int main() { int 展开全文
头像 牛客161598119号
发表于 2021-12-09 14:37:29
#include<stdio.h> int main(void) { int a,b,result; scanf("%x %o",&a,&b);//注意怎么输入十六进制和八进制 result=a+b; printf("%d",result) 展开全文
头像 牛客171676524号
发表于 2021-09-27 11:11:37
本题解题的关键就是:进制转换 int函数为转换为十进制整型数据int(x) 如果x为字符串,则需要提供第二个参数,就是进制:int(x,16)如果x为浮点数,直接就用int(x)即可如果x就为整数,只是进制不对,int会自动获取该进制的前缀的。。。x = input() a,b = x.split( 展开全文
头像 菜鸟溢栈:)
发表于 2021-11-02 14:52:38
#include<iostream> using namespace std; int main() { int a, b; cin >> hex >> a >> oct >> b ; cout<<a+b 展开全文
头像 牛客题解官
发表于 2020-06-04 16:53:11
分析: 输入一个十六进制数a,和一个八进制数b,输出a+b的十进制结果(范围-231~231-1)。 首先可以明确a,b的范围可以使用int保存,问题是如何读入对应的进制数,%x %o分别可以用于读入十六进制和八进制。 题解: #include <bits/stdc++.h> using 展开全文
头像 梦影随风
发表于 2022-03-15 19:43:28
题解: 使用Integer.valueOf(str,16)和Integer.valueOf(str,8)将字符串的十六进制数和八进制数转化为十进制数 但是转化的字符串不能有"0X"和"0"前缀,所以使用substirng接取字符串 import java.util.*; public class 展开全文
头像 牛客651919320号
发表于 2022-03-27 21:08:27
public class Main{ public static void main(String[]args) { Scanner scan = new Scanner(System.in); String str = scan.nextLine(); 展开全文
头像 Seechuan
发表于 2022-03-26 22:29:02
自己写转换函数: dic={'A':10,'B':11,'C':12,'D':13,'E':14,'F':15,\ '1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'0':0} def decimal(x,n): resu 展开全文
头像 不错就是对
发表于 2022-03-24 09:58:50
BC20 进制A+B 思路: step1:输入,并用空格分隔; step2:把进制标识位切除; step3:转换类型并相加输出; 代码如下: n = input().split() a = n[0][2:] b = n[1][1:] print(int(a,16) + int(b,8))
头像 Kurenai.Dokukawa
发表于 2022-02-21 14:18:38
#一行题解# print(sum(int(x, 16) if "0x" in x else int(x, 8) for x in input().split()))