当前位置: 首页 > news >正文

UVALive 4660 A+B

Regionals 2009 >> Asia - Jakarta

问题链接:UVALive 4660 A+B。入门训练题,用C语言编写程序。

问题分析

这是一个进制问题,输入的两个数不知道是几进制,也就是几进制都可以,求的是两个数最小的和,结果以10进制输出。

对于输入的两个数来说,进制越小值越小,所以尽可能选进制小的。最小的可能的进制就是一串数字中最大的数字加上1。只要两个数的进制知道了,事情就好办了。

另外,需要详细知道函数atoi()的原理,才能够随心所欲地解决进制有关的问题。

程序说明

程序中,使用字符流读方式,使用函数getchar()读入数据,同时求得数的最小进制。

封装了一个函数atoi()来实现字符串转整数。


AC的C语言程序如下:

/* UVALive4660 A+B */

#include <stdio.h>

typedef unsigned long long ULL;

#define MAXN 100

ULL atoi(char *p, int base)
{
    ULL result = 0;

    while(*p) {
        result *= base;
        result += *p - '0';
        p++;
    }

    return result;
}

int main(void)
{
    int n, sbase, tbase, i;
    char c, s[MAXN], t[MAXN];
    ULL val1, val2;

    scanf("%d", &n);
    getchar();
    while(n--) {
        sbase = 0;
        i = 0;
        while((c = getchar()) != ' ') {
            if(c > sbase)
                sbase = c;
            s[i++] = c;
        }
        s[i] = '\0';
        sbase = sbase - '0' + 1;

        tbase = 0;
        i = 0;
        while((c = getchar()) != '\n' && c != EOF) {
            if(c > tbase)
                tbase = c;
            t[i++] = c;
        }
        t[i] = '\0';
        tbase = tbase - '0' + 1;

        val1 = atoi(s, sbase);
        val2 = atoi(t, tbase);

        printf("%lld\n", val1 + val2);
    }

    return 0;
}




转载于:https://www.cnblogs.com/tigerisland/p/7564501.html

相关文章:

  • 切割Nginx日志的脚本
  • pg 学习资料
  • Ntp配置文件详解
  • httpd 启动报错“”Permission denied: make_sock: could not bind to address [::]:80“”
  • 定制yum仓库
  • WMIC Query SCSI Info
  • 基于Microchip单片机的触摸感应技术
  • 11g 新特性IGNORE_ROW_ON_DUPKEY_INDEX提示
  • sed-awk-正则表达式
  • CSS 漂亮搜索框美化代码
  • UVA136 Ugly Numbers
  • nginx反向代理目录及动静分离
  • 一个C#语言编写Windows服务的例子:强制杀死高内存占用的进程
  • 实用的dhcp及dhcp中继服务案例实现
  • Android初级进阶之Shape
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • CSS 提示工具(Tooltip)
  • Cumulo 的 ClojureScript 模块已经成型
  • Java到底能干嘛?
  • js
  • js作用域和this的理解
  • learning koa2.x
  • mysql常用命令汇总
  • PHP那些事儿
  • Python实现BT种子转化为磁力链接【实战】
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Web Storage相关
  • 大型网站性能监测、分析与优化常见问题QA
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 技术胖1-4季视频复习— (看视频笔记)
  • 来,膜拜下android roadmap,强大的执行力
  • 使用 Docker 部署 Spring Boot项目
  • 微服务核心架构梳理
  • 学习使用ExpressJS 4.0中的新Router
  • AI算硅基生命吗,为什么?
  • ​iOS实时查看App运行日志
  • ​LeetCode解法汇总518. 零钱兑换 II
  • #NOIP 2014# day.2 T2 寻找道路
  • #QT项目实战(天气预报)
  • #数学建模# 线性规划问题的Matlab求解
  • $(selector).each()和$.each()的区别
  • (1)Nginx简介和安装教程
  • (SpringBoot)第七章:SpringBoot日志文件
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (五)MySQL的备份及恢复
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原)Matlab的svmtrain和svmclassify
  • (转)【Hibernate总结系列】使用举例
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET 依赖注入和配置系统
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET6实现破解Modbus poll点表配置文件