这是该题的链接http://acm.hdu.edu.cn/showproblem.php?pid=1002

具体的题的内容就不过多描述了,想必你已经知道了,当我看完这道题后就知道咋写了,可是这道题从开始写到最后accept却花了我好长时间。

先描述一下我的思路,当我看到第二个测试数据后就知道用可以表示范围最大的unsigned long long int 也是无法表示的,之前刷蓝桥杯里面的题,遇到过这种题

因为我对java熟悉一下,所以可以使用BigDecimal解决,或者用数组.所以我果断采用了数组,就是先把输入的数(字符串)存入两个数组里面,每个元素代表一位

,然后反转,这样可以先个位数相加,最后再把结果反转过来即可,由于写算法从java转c++不就,所以c++很多函数还不熟,还有这道题的一些细节等因素耽误了我一些时间。

不过最终成功accept;

下面是具体的代码。

 #include<bits/stdc++.h>

 using namespace std;
char arr2[]={''};//保存输入的第一个字符串
char arr3[]={''};//保存输入的第二个字符串
//声明的数组能放在main()之外就尽量放在main()之外,可以减少一些不常见的错误
int main()
{ int a ;
cin >>a;
int k=;//输出时用来标记次序
int s1=a;//保存a值
string a1,a2;
string arr1[a];//最终的和,
while(a--){
arr2[]={};
arr3[]={};
cin >> a1 >> a2;
reverse(a1.begin(),a1.end());//加数反转方便先从个位相加
reverse(a2.begin(),a2.end()); strcpy(arr2,a1.c_str());
strcpy(arr3,a2.c_str());//字符串变字符数组方便保存 int ml=max(a1.length(),a2.length());//长度较大的加数
int mll=min(a1.length(),a2.length());//长度较小的加数
int arr4[ml+]={};
int flag=;
for(int i=;i<ml;i++){
if(i<mll || a1.length()==a2.length()){ arr4[i]=(((int)arr2[i]-)+((int)arr3[i]-)+flag)%;//对应位相加
flag=(((int)arr2[i]-)+((int)arr3[i]-)+flag)/;//是否进位保存在flag里面
}
if(i>=mll && a1.length()>a2.length()){
arr4[i]=(((int)arr2[i]-)+flag)%;//48是保证char到int相互转变代表的数字不变
flag=(((int)arr2[i]-)+flag)/;
}
if(i>=mll && a2.length()>a1.length()){
arr4[i]=(((int)arr3[i]-)+flag)%;
flag=(((int)arr3[i]-)+flag)/;
}
if(i==ml- && flag==){//确定最高位是否为进位得到的1
arr4[i+]=;
} } if(arr4[ml]==){//最高位为0则不输出最高位,
reverse(arr4,arr4+(ml+));
for(int i=;i<ml+;i++){
arr1[a]+=((char)(arr4[i]+));
}
}
else{
reverse(arr4,arr4+(ml+));
for(int i=;i<ml+;i++){
arr1[a]+=((char)(arr4[i]+));
}
}
reverse(a1.begin(),a1.end());
reverse(a2.begin(),a2.end());//再此反转得到最终结果
cout <<"Case " <<k++<<":" << endl;
cout <<a1 <<" + " <<a2<<" = " << arr1[a] << endl;
if(a!=){
cout << endl;
} } return ;
}

结论:由于自己的c++水平一般,所以代码并不是很规范,请原谅。

杭电1002_A + B Problem II的更多相关文章

  1. 杭电1002-A + B Problem II

    #include<stdio.h>#include<string.h> int main(){    char str1[1001],str2[1001];    int t, ...

  2. 杭电oj-1002-A+B Problem

    Problem Description I have a very simple problem for you. Given two integers A and B, your job is to ...

  3. 杭电 2639 Bone Collector II【01背包第k优解】

    解题思路:对于01背包的状态转移方程式f[v]=max(f[v],f[v-c[i]+w[i]]);其实01背包记录了每一个装法的背包值,但是在01背包中我们通常求的是最优解, 即为取的是f[v],f[ ...

  4. 杭电OJ----1002A + B问题II(超大数计算问题)

    Problem Description I have a very simple problem for you. Given two integers A and B, your job is to ...

  5. 杭电ACM2058--The sum problem

    http://acm.hdu.edu.cn/showproblem.php?pid=2058 以为简单的穷举就完了,结果是一直Time Limit Exceeded.. 这是代码: #include ...

  6. 【单调栈】hdu 6319 杭电多校Problem A. Ascending Rating

    http://acm.hdu.edu.cn/showproblem.php?pid=6319 从后往前更新,维护一个递减单调栈(队列) 最近很多题都是单调栈... #define _CRT_SECUR ...

  7. 杭电-------2055An Easy Problem(C语言)

    #include<stdio.h> int main() { int m; int i; scanf("%d", &m); ]; int y; int z; ; ...

  8. 杭电ACM(1002) -- A + B Problem II 大数相加 -提交通过

    杭电ACM(1002)大数相加 A + B Problem II Problem DescriptionI have a very simple problem for you. Given two ...

  9. 杭电ACM刷题(1):1002,A + B Problem II 标签: acmc语言 2017-05-07 15:35 139人阅读 评

    最近忙于考试复习,没有多少可供自己安排的时间,所以我利用复习之余的空闲时间去刷刷杭电acm的题目,也当对自己编程能力的锻炼吧. Problem Description I have a very si ...

随机推荐

  1. 【题解】P1156垃圾陷阱

    [题解]P1156 垃圾陷阱 乍看此题,我们感觉状态很多,很复杂. 遇到这类型条件比较多的\(dp\),我们不要首先考虑全部设出来,而是要看到这些状态的本质.而在这道题目中,时间和高度就是关键. 考虑 ...

  2. [2018-10-10]记录一下Vue的一个问题

    最近用vue typescript SPA 做管理后台(ABP官网导出的vue项目模板),遇到一个错误,找了好久,虽然有相关资料,但发现都没解决,这里自己记录一下. Failed to mount c ...

  3. Elasticsearch5 及 head插件 安装说明

    Elasticsearch5.X及 head插件 安装说明: 1.下载elasticsearch安装文件: a) 下载官方源码: https://artifacts.elastic.co/downlo ...

  4. vue 动态传值笔记

    :prop="'answers.a' + item.split('.')[1]+'.total'" {{scope.row.answers['a'+item.split('.')[ ...

  5. ZOJ3228 Searching the String —— AC自动机 + 可重叠/不可重叠

    题目链接:https://vjudge.net/problem/ZOJ-3228 Searching the String Time Limit: 7 Seconds      Memory Limi ...

  6. 国际电话号码的区号mysql数据表

    -- phpMyAdmin SQL Dump-- version 3.5.2-- http://www.phpmyadmin.net---- Host: localhost-- Generation ...

  7. codeforces 609D D. Gadgets for dollars and pounds(二分+贪心)

    题目链接: D. Gadgets for dollars and pounds time limit per test 2 seconds memory limit per test 256 mega ...

  8. 第十五章-Web开发

    随着web的发展, 最开始使用的CS架构已经不适合web了, 现在web使用的架构是BS架构 如今大部分重量级的软件都以web形式提供了 web开发的四个阶段 1) 静态web页面 2) CGI: 静 ...

  9. Map功能简化Python并发代码

    <转摘>Python 并行任务技巧 支持Map并发的包文件有两个: Multiprocessing,还有少为人知的但却功能强大的子文件 multiprocessing.dummy. Dum ...

  10. bjwc Day3 & 4 妈妈我这是来了个什么地方呀

    真·bjwc开始了 Day3 T1啥啥啥 第k大斜率?想都没想码了个暴力,然后爆零...暴力都能错,退役 T2看着像网络流就扔了个网络流大暴力上去,六七十分的样子然后蜜汁wa T3题面说“想都没想就弄 ...