zoukankan      html  css  js  c++  java
  • codeup-数制转换

    1942: 数制转换

    Time Limit: 1 Sec  Memory Limit: 32 MB
    Submit: 2738  Solved: 693
    [Submit][Status][Web Board][Creator:Imported]

    Description

    求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
    不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。

    Input

    输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。

    Output

    可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。

    Sample Input

    4 123 10

    Sample Output

    27

    HINT

    用字符串存储和表示不同进制的数。

      1 #include <stdio.h>
      2 #include <string.h>
      3 
      4 int main(){
      5     int a, b;
      6     char s[40];
      7     while(scanf("%d %s %d", &a, s, &b) != EOF){
      8         int len = strlen(s);
      9         //将字符串转换成数值!!! 
     10         for(int i=0; i<len; i++){
     11             if(s[i]>='0' && s[i]<='9') s[i] = s[i] - '0';
     12             if(s[i]>='a' && s[i]<='f') s[i] = s[i] - 'a' + 10;
     13             if(s[i]>='A' && s[i]<='F') s[i] = s[i] - 'A' + 10;
     14         }
     15         int sum=0, product=1;
     16         for(int i=len-1; i>=0; i--) {
     17             sum = sum + (int)s[i] * product;
     18             product = product * a;
     19         }
     20         int num = 0;
     21         //初始化!!! 
     22         memset(s, 0, sizeof(s));
     23         if(b==10){
     24             printf("%d
    ", sum);
     25         }else{
     26             //很奇妙的转化方式!!! 
     27             do{
     28                 if(sum%b<10){
     29                     s[num++] = sum % b + '0';
     30                 }else{
     31                     s[num++] = sum % b - 10 + 'A';
     32                 }
     33                 sum /= b;
     34             }while(sum!=0);
     35             for(int i=num-1; i>=0; i--){
     36                 printf("%c", s[i]);
     37             }
     38             printf("
    ");
     39         }
     40     }
     41     return 0;
     42 }
  • 相关阅读:
    使用Git遇到的问题及解决方案(初级)
    巧记前端易混淆的英文语法
    编程助手JavaScript学习库-DOM笔记
    编程助手JavaScript学习库-面向对象编程笔记
    JS原始类型:数值的运用技巧
    这题目有毒之干不过codewars的OJ系统(一)
    Javascript运算符进阶指南
    Qt:During startup program exited with code 0xc0000135
    QT 消息处理机制
    Windows环境 和 Linux环境下搭建Qt开发环境
  • 原文地址:https://www.cnblogs.com/heyour/p/12149879.html
Copyright © 2011-2022 走看看