zoukankan      html  css  js  c++  java
  • 1475 m进制转十进制——http://codevs.cn/problem/1475/

    第一部分:题目

    题目描述 Description

    将m进制数n转化成一个十进制数 m<=16

    题目保证转换后的十进制数<=100

    输入描述 Input Description

    共一行

    n和m

    输出描述 Output Description

    共一个数

    表示m进制的n化成十进制的数

    样例输入 Sample Input

    1010 2

    样例输出 Sample Output

    10

    第二部分:思路

    举例:(1010)2=1*2^3+0*2^2+1*2+0*2^0=(((1*2+0)*2+1)*2+0)*1.

    把n存入到字符串数组中,逐一乘m求和,注意字符的问题:因为题目没有说字母大写还是小写。这里以大写为例:A,B,C,D,E,F分别对应10,11,12,13,14,15.

    当然,根据进制的定义,最后一位其实是乘m的0次方。所以最后一个字符不乘。

    第三部分:代码

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int m,sum=0,i,len;
        char s[10];
        scanf("%s %d",s,&m);//这里需要稍微注意,因为scanf不接收空格以及回车,所以这样一步就把空格两边的值赋给了数组s,和整数m.
        len=strlen(s);//获取字符长度
        for(i=0;i<len;i++)
        {
            switch(s[i])//对当前进制的每一位数值进行判断
            {
                case 'F':
                case 'f':
                    {
                        sum+=15;
                        break;
                    }
                case 'E':
                case 'e':
                    {
                        sum+=14;
                        break;
                    }
                case 'D':
                case 'd':
                    {
                        sum+=13;
                        break;
                    }
                case 'C':
                case 'c':
                    {
                        sum+=12;
                        break;
                    }
                case 'B':
                case 'b':
                    {
                        sum+=11;
                        break;
                    }
                case 'A':
                case 'a':
                    {
                        sum+=10;
                        break;
                    }
                default:
                    {
                        sum+=s[i]-'0';
                    }
            }
            if(i<len-1)//最后一位乘1.
            {
                sum*=m;
            }
        }
        printf("%d
    ",sum);
        return 0;
    }
    害怕失败的人,已经是一个loser!
  • 相关阅读:
    mysql案例 ~ 监控以及如何避免从库延迟问题
    mysql基础~开发规范
    k8s系列~mgr的应用
    k8s系列~docker mysql
    常用知识点(一)
    Windows下查看进程状态/信息
    Lua入门(一)
    Lua简介
    .NET&C#的异常处理
    数据库中的锁
  • 原文地址:https://www.cnblogs.com/xiangguoguo/p/5337141.html
Copyright © 2011-2022 走看看