代码链接

PDF链接

首先要说的是这道题的难点是如何把数字输出加入逗号,毕竟数据范围并没有超过Long。当然这个难点也不是问题,将数字转为字符串,C中就有这样的函数,然后再用 %3==0 这样来控制输出 。

但我最近出于想要建立自己的代码库的想法,而且这道题我的第一反应其实是高精度运算,所以一是想练练手,二是以后想用高精度可以直接复制了,我就写的复杂一点。

解题思路

程序的实现需要四个函数。

函数一: char* highAdd(char* a,char* b,char *c) //c=a+b

原谅我蹩脚的英语,这个词我的本意是无负数的高精度加法,将数字以字符串读入(负号另处理,不传入),然后逐位相加,可以理解小学的竖式加法。将结果存在c中,因为不确定位数,所以需要除去0位,返回非零位的指针。比如三位数加一位数答案有可能是四位和三位(999+1和100+1),所以我预设的是四位,最后再除零。

函数二: char* highDel(char* a,char* b,char *c) //c=a-b

这个函数用在存在负号的情况,其中a的值必大于b的值,否则会出错,实现过程同 highAdd ,竖式计算。

函数三: int compare(char* a,char* b)

这个compare就是为了上面的 highDel 服务的,判断a和b的值谁大,当然不能处理有负号的情况。负号的处理我放在了主函数中。

函数四: void formatPrint(char* a)

这个函数就是将最后的结果进行规范输出,因为是对字符串进行操作,实现比较简单,就不细讲了。

主函数

主函数中读取两个数,依据负号分为三种情况依次处理。

  • 没有负号

直接两数相加,规范输出

  • 都有负号

将两数的非负号位进行相加,最后输出前加个 - 就行了。

  • 一个负号

分两种情况,正数大于负数的绝对值的话可以直接调用highDel,然后输出。正数小于负数的绝对值的话将负数的绝对值减去正数,然后在输出结果前加个负号就可以了。

过程

思路有了话,过程也就没什么可说的的,就是照着自己的设想实现,只要保证函数的功能能够实现,那么程序的主体就可以工作,要非要说什么调试的经历的话,实现逗号的输出算一个,虽然知道要用 %3 来实现逗号输出的控制,但用什么来求余就需要控制,是加1还是加2还是不用加,我是逐个试过去,然后还要注意头和尾不能输出逗号,需要再添加一个条件来控制。

其次要说的就是加法函数了,本来我是没打算输出的,我想将c的指针后移来除零,但发现没用,后来想了想,指针指向的内容在函数内可以改变,但指针本身并不可以改变,所以我就返回一个指针来指向第一个非零位,对了,还有答案为0的话还要将0保留,需要添加条件判断,不能直接跳过。

提交列表

简单测试通过后直接AC了

最后

写完后回看自己的代码总觉的实现的不是很好,感觉有些不必要的操作,比如对负号的处理好像有点复杂,和我想象中的高精度运算有点差距。但我目前也没什么更好的想法,就先这样吧。

1001 A+B的更多相关文章

  1. SCNU 2015ACM新生赛初赛【1001~1011】个人解题思路

            题目1001:       大意:已知$n$个角色,$m$种怪物种族,$k$个怪物,给出一组角色编号,编号$P_{i}$的角色能肝死编号$i$的怪物,对于给定的一组怪物编号,为了打通关 ...

  2. BZOJ 1001: [BeiJing2006]狼抓兔子

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 20029  Solved: 4957[Submit][ ...

  3. 1001 数组中和等于K的数对 1090 3个数和为0

    二分查找.对数组每个V[i],在其中查找K-V[i],查找完成后修改v[i]避免重复输出 #include<iostream> #include<algorithm> #inc ...

  4. PAT Basic Level 1001

    大纲考察内容 数据存储结构:数组.链 基础算法:递归.排序.计算时间复杂度.空间复杂度.分析算法稳定性 1001.害死人不偿命的(3n+1)猜想 (15) https://www.patest.cn/ ...

  5. acm入门 杭电1001题 有关溢出的考虑

    最近在尝试做acm试题,刚刚是1001题就把我困住了,这是题目: Problem Description In this problem, your task is to calculate SUM( ...

  6. 1001. A+B Format (20)

    原题连接:https://www.patest.cn/contests/pat-a-practise/1001 题目如下: Calculate a + b and output the sum in ...

  7. ORA-00600: internal error code, arguments: [17281], [1001], [0x1FF863EE8], [], [], [], [], []

    我们生产服务器中的一个数据库发出监控告警日志的邮件,内容如下所示,在31号09:11分出现了大名鼎鼎的ORA-00600错误. Dear All: The Instance xxx' alert lo ...

  8. 山东第一届省赛1001 Phone Number(字典树)

    Phone Number Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 We know that if a phone numb ...

  9. 【第1期】腾讯云的1001种玩法征集,Ipad mini和Kindle 等你拿!(文章评审中)

    版权声明:本文由阁主的小跟班原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/695994001482226944 来源:腾云 ...

  10. HOJ 1001: A+B; 1002: A+B+C

    两道水题,用来熟悉 HOJ 的提交系统. 1001:输入两个整数 A, B (0 <= A,B <= 10),输出 A+B. #include <iostream> using ...

随机推荐

  1. BZOJ4006: [JLOI2015]管道连接(斯坦纳树,状压DP)

    Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 1171  Solved: 639[Submit][Status][Discuss] Descripti ...

  2. JavaWeb基础—过滤器Filter

    一.概念 JavaWeb三大组件之一(组件都有一个特性,需要在web.xml中配置) 过滤器:会在一组资源(jsp servlet等)的前面执行,可以让请求得到目标资源,也可以终止请求,不再继续 也就 ...

  3. JavaWeb基础—数据库连接池DBCP、C3P0

    一.基本概念 数据库连接池负责分配.管理和释放数据库连接 数据库连接池:(池用map来实现居多) 用处:为了可重用(销毁创建麻烦,开销大)(招培训老师的例子) 二.编写实现数据库连接池 池参数: 初识 ...

  4. UWP Read write File -StorageFile

    // private void MainPage_Loaded(object sender, RoutedEventArgs e) { GetFileAsync(); } public async v ...

  5. WPF 绑定StaticResource到控件的方法

    原文:WPF 绑定StaticResource到控件的方法 资源文件内的属性能否直接通过绑定应用到控件?答案是肯定的. 比如,我们要直接把下面的<SolidColorBrush x:Key=&q ...

  6. WPF 事件触发命令

    方法一使用mvvmlight: xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Int ...

  7. c++ 创建二叉树

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

  8. 基于Keras的imdb数据集电影评论情感二分类

    IMDB数据集下载速度慢,可以在我的repo库中找到下载,下载后放到~/.keras/datasets/目录下,即可正常运行.)中找到下载,下载后放到~/.keras/datasets/目录下,即可正 ...

  9. 9.22 下午 (document对象)

    document对象 1.找元素:(1)gerElementById()根据ID找   (2)gerElementByClassName()根据Class找,返回数组       (3)gerElem ...

  10. 【Maven】在pom.xml文件中使用resources插件的小作用

    在spring boot创建web项目打包为jar包的过程中,是不会把webapp目录下的页面也打包进去的,这个时候接触到了maven的 resources插件. ================== ...