进制转换(m 进制 x 转换为 n 进制的数)

简介: 进制转换(m 进制 x 转换为 n 进制的数)

摘要:以前写的进制转换一般不会考虑大数问题,举个例子就是如果16进制的FFFFFFFFF就是16^9是一个非常大的数,这个时候就需要用数组来存。

题目:

将M进制的数X转换为N进制的数输出。

输入

输入的第一行包括两个整数:M和N(2<=M,N<=36)。

下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出。

输出

输出X的N进制表示的数。

样例输入

10 2

11

样例输出

1011

提示

注意输入时如有字母,则字母为大写,输出时如有字母,则字母为小写。

**解题思路:**这个题主要是模拟进制转换的过程写的,运行一遍代码就可以看懂

程序代码:

#include<stdio.h>
#include<math.h>
#include<string.h> 
char s1[1000],c[1000];
int a[1000],b[1000];
int main()
{
  int i,j,k,m,n,x,t,s,sum,v,w;
  scanf("%d%d",&m,&n);
  scanf("%s",s1);
  t=strlen(s1);
  //先转换为十进制
  memset(a,0,sizeof(a));
  memset(b,0,sizeof(b));
  k=1;
  for(i=0;i<t;i++)
  {
    for(j=0;j<k;j++)
      a[j]=a[j]*m;
    if(s1[i]>='0'&&s1[i]<='9')
      a[0]=a[0]+s1[i]-'0';
    else if(s1[i]>='A'&&s1[i]<='Z')
      a[0]=a[0]+s1[i]-'A'+10;
    v=0;
    for(j=0;j<k;j++)
    {
      a[j]=a[j]+v;
      if(a[j]>=10)
      {
        v=a[j]/10;
        a[j]=a[j]%10;
      }
      else
        v=0;    
    }
    while(v)
    {
      a[k++]=v%10;
      v=v/10;
    }   
  } 
  j=0;
  //把十进制的数顺序掉一下
  for(i=k-1;i>=0;i--)
    b[j++]=a[i];  
/*  for(i=0;i<j;i++)
    printf("%d",b[i]);
  printf("\n");
  printf("%d\n",k);*/
  //*************************************//
  sum=1;s=0;
  //十进制转换n进制
  while(sum)
  {
    sum=0;
    for(i=0;i<k;i++)
    {
      v=b[i]/n;
    //  printf("******%d\n",v);
      sum+=v;
      if(i==k-1)
      {
        t=b[i]%n;
      //  printf("&&&&&&&%d\n",t);
        if(t<=9)
          c[s++]=t+'0';
        else 
          c[s++]=t-10+'a';
      }
      else
      {
        b[i+1]=b[i+1]+b[i]%n*10;
        //printf("+++++%d %d\n",i,b[i+1]);
      } 
      b[i]=v;
    }
  }
  for(i=s-1;i>=0;i--)
    printf("%c",c[i]);
  printf("\n");
  return 0;
} 
相关文章
|
JSON TensorFlow 算法框架/工具
Windows下安装Anaconda5.3.1+Python3.8+TensorFlow2.13.0-CPU版本总结
Windows下安装Anaconda5.3.1+Python3.8+TensorFlow2.13.0-CPU版本总结
1139 0
|
数据采集 机器学习/深度学习 存储
大数据的处理流程
【10月更文挑战第16天】
1569 2
|
存储 传感器 物联网
Golang 串口通信
Golang 串口通信
|
存储 前端开发 搜索推荐
淘宝 1688 API 接口助力构建高效淘宝代购集运系统
在全球化商业背景下,淘宝代购集运业务蓬勃发展,满足了海外消费者对中国商品的需求。掌握淘宝1688 API接口是构建成功代购系统的關鍵。本文详细介绍如何利用API接口进行系统架构设计、商品数据同步、订单处理与物流集成,以及用户管理和客户服务,帮助你打造一个高效便捷的代购集运系统,实现商业价值与用户满意度的双赢。
|
存储 算法
动态规划算法学习一:DP的重要知识点、矩阵连乘算法
这篇文章是关于动态规划算法中矩阵连乘问题的详解,包括问题描述、最优子结构、重叠子问题、递归方法、备忘录方法和动态规划算法设计的步骤。
1131 0
|
数据采集 存储 缓存
【Python-Tensorflow】tf.data.Dataset的解析与使用
本文详细介绍了TensorFlow中`tf.data.Dataset`类的使用,包括创建数据集的方法(如`from_generator()`、`from_tensor_slices()`、`from_tensors()`)、数据集函数(如`apply()`、`as_numpy_iterator()`、`batch()`、`cache()`等),以及如何通过这些函数进行高效的数据预处理和操作。
544 7
一文教会你如何在论文中插入参考文献的角标
这篇文章介绍了在撰写论文时如何添加参考文献编号,并在文中插入这些参考文献的角标,以及如何通过点击文献编号跳转到对应的参考文献列表。
一文教会你如何在论文中插入参考文献的角标
|
设计模式 Java 中间件
静态代理和动态代理的区别以及实现过程
这篇文章通过示例代码讲解了静态代理和动态代理在Java中的使用方式和区别,重点介绍了动态代理的实现原理及其在Spring框架中的应用。
静态代理和动态代理的区别以及实现过程
|
安全 前端开发 中间件
Python面试题:Django Web框架基础与进阶
【4月更文挑战第17天】本文详细梳理了Django面试中常考的基础和进阶问题,包括MTV架构、ORM、数据库迁移、视图模板、中间件、信号、表单验证、用户认证授权等,并指出易错点及规避策略。提供代码示例展示模型和视图的实现,助力开发者在面试中脱颖而出。
791 12
|
负载均衡 Java

热门文章

最新文章