博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDOJ1004
阅读量:5234 次
发布时间:2019-06-14

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

#include
#include "cstring"using namespace std;int add(char s1[],char s2[]){ int a[1001]={
0},b[1001]={
0};//当a[1000]时出错会在最后出现一个1 int strlen1 = strlen(s1); int strlen2 = strlen(s2); for(int i=(strlen1-1),j=0;i>=0;i--)//如何将字符串数字转换为数字数组 a[j++] = s1[i] - '0'; for(int i=(strlen2-1),j=0;i>=0;i--)//将字符串调转输入 b[j++] = s2[i] - '0'; for(int i=0;i<1000;i++) { a[i] = a[i] + b[i]; if (a[i] >= 10) { a[i] = a[i] - 10; a[i + 1]++; } } int i; for(i=1000;i>=0&&a[i]==0;i--); //将i定位到数组的有效端 for( ;i>=0;i--) cout << a[i]; return 0;}int main() { int n; char a[1000], b[1000]; cin >> n; for (int i = 0; i < n; i++) { cin >> a >> b; cout << "Case " << i + 1 << ":" << endl; cout << a << " + " << b << " = "; add(a, b); cout << endl; if (i != (n - 1)) cout << endl; } return 0;}

第一、如何将长数字转化为字符串进行计算

第二、for的灵活运用,包括在第一个分号内多定义使字符串反向赋值给数组,包括如何将在定义数组时多出来的0抹去找到第一个不为0的数字的位子

第三、在转换计算得过程中:为何将字符串反向的两个原因:1.相加直接进卫给后一位2.在读取值的时候能直接从开头开始读取,而不用担心从末尾读会把本身数字的0消去的情况

第三、strlen()是直接计算有效字符的长度与sizeof不同(所占空间)

转载于:https://www.cnblogs.com/cunyusup/p/7669356.html

你可能感兴趣的文章
实现对称加密及非对称公钥加密
查看>>
Oracle Null 与 in, exists 的关系说明(not in 查不到结果)
查看>>
一个vue小demo购物车
查看>>
javascript 获取滚动条高度+常用js页面宽度与高度[转]
查看>>
nexus admin 从文件角度进行密码重置
查看>>
2012TI杯电子设计大赛
查看>>
[教程]Delphi 中三种回调函数形式解析
查看>>
HeatMap(热图)的原理和实现
查看>>
[转]室友靠打游戏拿30万offer,秘密竟然是……
查看>>
linux下python2.7.x版本安装
查看>>
Laravel5.5 GraphQL 为应用程序构建API
查看>>
IOS框架和服务
查看>>
[转]快速排序 挖坑讲解方法
查看>>
[转]STL之list容器详解
查看>>
python 创建虚拟环境时报错OSError, setuptools下载失败
查看>>
BZOJ 1005 [HNOI2008]明明的烦恼 ★(Prufer数列)
查看>>
POSIX 线程 – pthread_sigmask
查看>>
基于octree的空间划分及搜索操作
查看>>
Redis--初识Redis
查看>>
[ZJOI2005]午餐 (贪心,动态规划)
查看>>