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

UVA713 UVALive5539 POJ1504 ZOJ2001 Adding Reversed Numbers

Regionals 1998 >> Europe - Central

问题链接:UVA713 UVALive5539 POJ1504 ZOJ2001 Adding Reversed Numbers。入门练习题,用C语言编写。

题意简述:输入两个整数,都反转(逆序)后再求和,输出相加后反转(逆序)的结果。

问题分析:整数可能很大,大到200位;相加结果反转后左边的0需要去掉。

程序中封装了两个函数来实现,逻辑更加简单清晰。

AC的C语言程序如下:

/* UVA713 UVALive5539 POJ1504 ZOJ2001 Adding Reversed Numbers */

#include <stdio.h>
#include <string.h>

#define MAXN 200

void revers(char s[])
{
    int start, end;

    start = 0;
    end = strlen(s) - 1;
    while(start < end) {
        char temp;
        temp = s[start];
        s[start] = s[end];
        s[end] = temp;

        start++;
        end--;
    }
}

int add(char s[], char t[], char r[])
{
    int i, j, k, c;

    i = strlen(s) - 1;
    j = strlen(t) - 1;

    c = 0;
    k = 0;
    while(i >= 0 || j >= 0) {
        if(i >= 0)
            r[k] = s[i] - '0' + ((j>=0)?(t[j] - '0'):0) + c;
        else
            r[k] = t[j] - '0' + c;

        if(r[k] >= 10) {
            r[k] = r[k] - 10 + '0';
            c = 1;
        } else {
            r[k] = r[k] + '0';
            c = 0;
        }

        i--;
        j--;
        k++;
    }
    if(c > 0)
        r[k++] = c + '0';
    r[k] = '\0';

    i = 0;
    while(i < k && r[i] == '0')
        i++;

    return i;
}

int main(void)
{
    int n, start;
    char s[MAXN+1], t[MAXN+1], ans[MAXN+2];

    scanf("%d", &n);
    while(n--) {
        scanf("%s%s", s, t);

        revers(s);
        revers(t);

        start = add(s, t, ans);

        printf("%s\n", ans + start);
    }

    return 0;
}



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

相关文章:

  • centos查看启动时间
  • Etsy如何及为什么迁移到API优先的架构
  • SpringBoot中AOP的配置
  • iOS标准库中常用数据结构和算法之查找
  • CoreText实现图文混排之点击事件-b
  • 性能优化技巧 - 集群维表
  • 不同机器下,游戏编程如何保证物体移动具有相同的速度
  • 量子通信是个鸡肋,没有证券分析师说得那么好
  • 微信,QQ这类IM app怎么做——谈谈Websocket
  • DRF如何序列化外键的字段
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • iOS开发UI篇—CAlayer层的属性
  • Surrogate data 代理数据
  • 延迟
  • 网络设备
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【mysql】环境安装、服务启动、密码设置
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Django 博客开发教程 16 - 统计文章阅读量
  • mongo索引构建
  • Mysql优化
  • Phpstorm怎样批量删除空行?
  • Python实现BT种子转化为磁力链接【实战】
  • Python学习笔记 字符串拼接
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 分布式熔断降级平台aegis
  • 区块链将重新定义世界
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 正则表达式小结
  • 智能网联汽车信息安全
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​学习一下,什么是预包装食品?​
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • %@ page import=%的用法
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)Linux整合apache和tomcat构建Web服务器
  • **PHP二维数组遍历时同时赋值
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • @Bean有哪些属性
  • @JsonSerialize注解的使用
  • []error LNK2001: unresolved external symbol _m
  • []sim300 GPRS数据收发程序
  • [20171113]修改表结构删除列相关问题4.txt