当前位置: 首页 > article >正文

进制转换(蓝桥杯)

1.将任意进制转化为 十进制

ll x = 0;
for(int i = 1;i <= n;i++){
     x = x * k + a[i];
}
cout << x << '\n';

例:

问题描述

请问十六进制数 2021ABCD 对应的十进制是多少?

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

#include <iostream>
using namespace std;

typedef long long LL;
const int N = 50;
int a[N];

int main()
{
  string s = "2021ABCD";
  for(int i = 0;i < s.length();i++){
    if('0' <= s[i] && s[i] <= '9')
    a[i+1] = s[i] - '0';
    else 
    a[i+1] = s[i] - 'A' + 10; 
  }
  LL x = 0;
  for(int i = 1;i <= s.length();++i){
    x = x *16 + a[i];
  }
  cout << x << '\n';
  return 0;
}

例:

九进制正整数 (2022)9(2022)9​ 转换成十进制等于多少?

#include <iostream>
using namespace std;
const int N = 10;
typedef long long LL;
int a[N];

int main()
{
  string s = "2022";
  for(int i = 0;i < 4;i++){
    a[i+1] = s[i] - '0';
  }
  LL x= 0;
  for(int i = 1;i <=s.length();++i){
    x = x*9+a[i];
  }
  cout << x<<endl;
  return 0;
}

2.将 十进制 转化为 任意k进制

ll x;
cin >> x;
while(x){
  a[++cnt] = x % k, x /= k;
}
reverse(a+1,a+1+cnt);

例:

进制转换

题目描述

给定一个 N进制数 S,请你将它转换为 M 进制。

输入描述

第一行为一个整数 T,表示测试数据数量。 (1≤T≤105)

每个测试用例包含两行,第一行包含两个整数 N,M。

第二行输入一个字符串 S,表示 N 进制数。

数据范围保证:2≤N,M≤16,若 N≥10,则用A∼F 表示字码10∼15。保证 S 对应的十进制数的位数不超过 10。

输出描述

输出共 T,每行表示一组数据的答案。

输入样例
2
2 10 
10101 
11 2
1793A5068

输出样例
21
10101111001010100111010101011
代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;int a[1000];
char ch[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
void aa()
{  
  int n,m;string s;
  cin>>n>>m>>s;
  for(int i=0;i<s.size();i++)
  {
    if('0'<=s[i]&&s[i]<='9') a[i]=s[i]-'0';
    else a[i]=s[i]-'A'+10;
  }
 ll x=0;
 for(int i=0;i<s.size();i++)
 {
   x=x*n+a[i];
 } 
 string ss;
 while(x) ss+=ch[x%m],x/=m;
 reverse(ss.begin(),ss.end());
cout<<ss<<endl;
}
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
  int t;
  cin>>t;
  while(t--)
  {
    aa();
  }
  
  return 0;
}

http://www.kler.cn/a/470643.html

相关文章:

  • 随机置矩阵列为0[矩阵乘法pytorch版]
  • 网页数据如何正确copy到postman中
  • QT上实现SVM进行数据分类
  • 一文讲明白朴素贝叶斯算法及其计算公式(入门普及)
  • Tailwind CSS 使用简介
  • GitHub的简单操作
  • 【C/C++】Protobuf与nlohmann/json的比较
  • 【Uniapp-Vue3】常用的表单组件button和input
  • SpringBoot2 如何集成OpenAPI
  • 麒麟操作系统服务架构保姆级教程(八)数据库拆分静态业务拆分和负载均衡
  • dockerignore文件怎么写
  • iOS - AutoreleasePoolPage 节点为空时的处理逻辑
  • 使用Node编写服务器接口
  • 新型大数据架构之湖仓一体(Lakehouse)架构特性说明——Lakehouse 架构(一)
  • uniapp使用canvas生成订单小票图片
  • 【STM32】点击下载按钮时,提示No ST-LINK detected
  • 创建型模式4.原型模式
  • node.js版本管理之---npm 和 package.json
  • 图像识别-全连接层-卷积层-卷积层的计算-多输入通道场景-多输出通道场景-感受野-填充-VALID 与 SAME-stride-池化-CNN架构
  • 【C语言程序设计——选择结构程序设计】按从小到大排序三个数(头歌实践教学平台习题)【合集】
  • Backend - ADO.NET(C# 操作Oracle、PostgreSQL DB)
  • HCIA-Access V2.5_8_1_EPON原理_PON基本概念
  • 在Linux中,SElinux的作用是什么?如何临时和永久的更改SElinux上下文?
  • Linux buildroot和ubuntu的异同点
  • 支付宝手机网站支付
  • 两万字梳理 | 四足机器人的结构、控制及运动控制