Codeforces Round #333 (Div. 2) A. Two Bases

本文介绍了一个用于比较不同进制数大小的算法,并提供了相应的代码实现。通过将不同进制数转换为十进制进行比较,解决了如何在编程中高效处理不同进制数的问题。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

题目链接:http://codeforces.com/contest/602/problem/A

这道题要求你比较两个不同进制数的大小。

6 2

1 0 1 1 1 1

2 10

4 7

前两行描述第一个数:2表示这个数是二进制数,6表示这个数有6位,第二行描述这个数的各个位的具体信息。

后两行描述第二个数:10表示这个数是十进制数,2表示这个数有2位,第四行描述这个数的各个位组成。

 

分析:

理论上的最大值是10位的40进制数,也就是10940进制数,化为十进制是2419790769230769。最多不超过long long.

思路就是把两个数都换成是十进制数,直接比较。

附一份代码:
  

#include <bits/stdc++.h>

int main()
{
    int n, m;
    while(~scanf("%d %d", &n, &m))
    {
        int tmp;
        long long sum1=0, sum2=0;

        for(int i=0; i<n; i++)
        {
            scanf("%d", &tmp);
            sum1 = sum1*m + tmp;
        }
        printf("%lld\n", sum1);
        scanf("%d%d", &n, &m);

        for(int i=0; i<n; i++)
        {
            scanf("%d", &tmp);
            sum2 = sum2*m + tmp;
        }
        if(sum1 == sum2)
            printf("=\n");
        else if(sum1 > sum2)
            printf(">\n");
        else
            printf("<\n");
    }
    return 0;
}


开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值