博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大数减法
阅读量:6172 次
发布时间:2019-06-21

本文共 1108 字,大约阅读时间需要 3 分钟。

大数减法的步骤():

  1. 首先是输入2个数据,而且逆序。还要去掉前导0。
  2. 比較大小:
    1. 相等的话,结果为0。
    2. 前者大于后者,则直接进行减法运算。

    3. 前者小于后者,则用后者减去前者,最后在结果前面添上负号。
  3. 从最高位開始输出结果。

#include 
#include
#define MAX 1000using namespace std;void InputNumber(char *num_1,char *num_2){ char *temp = new char [MAX];//用于存放输入的数据 memset(temp,0,sizeof(temp));cin>>temp;//清空容器并输入第一个数据 for(int i = num_1[0] = strlen(temp); i>0; i--) num_1[i] = temp[ num_1[0] - i ] - '0';//逆序并转换成对应的数字 memset(temp,0,sizeof(temp));cin>>temp;//清空容器并输入第二个数据 for(int i = num_2[0] = strlen(temp); i>0; i--) num_2[i] = temp[ num_2[0] - i ] - '0';//逆序并转换成对应的数字 delete [] temp;//释放暂时容器}void CutNumber(char *num_1,char *num_2,char *sum){ sum[0] = max(num_1[0],num_2[0]); for(int i=1; i <= sum[0]; i++) { sum[i] = num_1[i] - num_2[i]; if( sum[i] < 0 ) { num_1[ i + 1 ]--; sum[i] += 10; } }}void OutputNumber(char *sum){ for(int i = ++sum[0]; !sum[i] && 1 < i; sum[0]--,i--) ;//过滤前导0。避免结果所有是0。所以仅仅留下一位只是滤 for(int i = sum[0]; i > 0; i--) cout<<(int)sum[i];//输出结果 cout<
<
你可能感兴趣的文章
IOSday04 UIButton使用
查看>>
铁大好青年内部分组
查看>>
unity3D ——自带寻路Navmesh入门教程(一)(转)
查看>>
判断字符串是否为数字的函数
查看>>
[emuch.net]MatrixComputations(7-12)
查看>>
linux 命令 — 文件相关
查看>>
自己空闲的时候封装一下
查看>>
Datagard產生gap
查看>>
本机web开发环境的搭建--nginx篇
查看>>
rcnn 理解笔记
查看>>
问答项目---登陆验证码点击切换及异步验证验证码
查看>>
plist文件中iphone和ipad的应用图片设置
查看>>
搜集的一些资源网站链接
查看>>
struts2中类型转换器的使用
查看>>
11G Oracle RAC添加新表空间时数据文件误放置到本地文件系统的修正
查看>>
从91移动应用发展趋势报告看国内应用现状
查看>>
【ORACLE技术嘉年华PPT】MySQL压力测试经验
查看>>
Linux下汇编调试器GDB的使用
查看>>
css溢出机制探究
查看>>
vue中如何实现后台管理系统的权限控制
查看>>