zoukankan      html  css  js  c++  java
  • HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking

    Time Limit: 1000MS   Memory Limit: 10000K
    Total Submissions: 4772   Accepted: 2141

    Description

    The Really Neato Calculator Company, Inc. has recently hired your team to help design their Super Neato Model I calculator. As a computer scientist you suggested to the company that it would be neato if this new calculator could convert among number bases. The company thought this was a stupendous idea and has asked your team to come up with the prototype program for doing base conversion. The project manager of the Super Neato Model I calculator has informed you that the calculator will have the following neato features: 

    • It will have a 7-digital display. 
    • Its buttons will include the capital letters A through F in addition to the digits 0 through 9. 
    • It will support bases 2 through 16. 

    Input

    The input for your prototype program will consist of one base conversion per line. There will be three numbers per line. The first number will be the number in the base you are converting from. The second number is the base you are converting from. The third number is the base you are converting to. There will be one or more blanks surrounding (on either side of) the numbers. There are several lines of input and your program should continue to read until the end of file is reached.

    Output

    The output will only be the converted number as it would appear on the display of the calculator. The number should be right justified in the 7-digit display. If the number is to large to appear on the display, then print ``ERROR'' (without the quotes) right justified in the display.

    Sample Input

    1111000  2 10
    1111000  2 16
    2102101  3 10
    2102101  3 15
      12312  4  2
         1A 15  2
    1234567 10 16
       ABCD 16 15

    Sample Output

        120
         78
       1765
        7CA
      ERROR
      11001
     12D687
       D071

    Source


    Regionals 1995 >> North America - Mid-Central USA


    问题链接HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking

    问题简述:参见上文。

    问题分析:每行给出一个数、进制和目标进制,对数进行进制转换,输出一个长度不大于7的值。

    一个纯粹进制转换题,需要懂得进制的原理,熟悉atoi()和itoa()的实现过程。

    另外需要注意的是,值的范围和输入输出格式。

    程序说明:(略)


    AC的C语言程序如下:

    /* HDU1335 POJ1546 Basically Speaking */
    
    #include <stdio.h>
    
    #define LEN 7
    
    // 进制转换:将frombase进制的s[]转换为tobase进制,并且输出
    void changeoutput(char s[], int frombase, int tobase)
    {
        long long result = 0;
        char t[64], *p;
        int count;
    
        // atoi:字符串转换为整数,基数为frombase
        p = s;
        while(*p) {
            result *= frombase;
            if('0' <= *p && *p <= '9')
                result += *p - '0';
            else if('A' <= *p && *p <= 'F')
                result += *p + 10 - 'A';
            p++;
        }
    
        // itoa:整数转换为字符串,基数为tobase
        count = 0;
        while(result) {
            int val = result % tobase;
            if(0 <= val && val <= 9)
                t[count] = val + '0';
            else if(10 <= val && val <= 15)
                t[count] = val - 10 + 'A';
            result /= tobase;
            count++;
        }
    
        // 输出结果
        if(count == 0)
            printf("      0
    ");
        else if(count > LEN)
            printf("  ERROR
    ");
        else {
            int i;
            // 补足空格
            for(i=count; i<LEN; i++)
                t[i] = ' ';
            // 逆序输出
            for(i=LEN-1; i>=0; i--)
                putchar(t[i]);
            putchar('
    ');
        }
    }
    
    int main(void)
    {
        int frombase, tobase;
        char s[1024];
        
        while(scanf("%s%d%d", s, &frombase, &tobase) != EOF) {
            changeoutput(s, frombase, tobase);
        }
        
        return 0;
    }


  • 相关阅读:
    @Repository、@Service、@Controller 和 @Component
    SSH简单搭建
    超详细的Maven使用教程
    Maven入门指南① :Maven 快速入门及简单使用
    MySQL建立一个连接工具类
    js分页demo
    Java通过JDBC 进行Dao层的封装
    Linux 上svn使用http访问设置
    Linux (Ubuntu)安装svn
    阿里云域名文档
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564569.html
Copyright © 2011-2022 走看看