大整数加法 HDU1002
今天早上没事干又把这个敲了一遍,虽然手冻得不行,不过又深入理解理解还可以哈。
难点就在给你的整数可能很大很长,所以long long 肯定不行,得用字符串来读取存储,然后注意一下相加的时候进位,最后输出注意去0就OK啦。(核心思想就是大数逆序相加最后逆序再输出就是正确结果了)。然后下边是自己写的思路比较清晰的代码,大家可以借鉴后再自己想想有没有更简单的,可以互相学习呀。
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
char A[],B[];
int a[],b[],c[];
void nuxu()//简单的逆序存入整型数组
{
memset(a,,sizeof(a));
memset(b,,sizeof(b));
memset(c,,sizeof(c));
int k1=,k2=,ans;
ans=strlen(A);
for(int i=ans-;i>=;i--)
a[k1++]=A[i]-'';
ans=strlen(B);
for(int i=ans-;i>=;i--)
b[k2++]=B[i]-'';
}
void yunsuan()
{
int k=strlen(A)>strlen(B)?strlen(A):strlen(B);
int len=;
for(int i=;i<k;i++)
{
c[i]+=a[i]+b[i];
if(c[i]>)//进位操作,为什么只用判一次,或者说只进位一次大家再自己想想啦;
{
c[i+]++;
c[i]-=;
}
}
}
int main()
{
int t,flag;
scanf("%d",&t);
for(int j=;j<=t;j++)
{
flag=;
if(j!=)
printf("\n");//题目要求格式
scanf("%s%s",A,B);
nuxu(); //写main函数外边更清晰,简便点
yunsuan();
printf("Case %d:\n%s + %s = ",j,A,B);//以上是题目要求输出格式
for(int i=;i>=;i--)//逆序输出
{
if(c[i]!=||flag==)//直接控制去前导0了
{
printf("%d",c[i]);
flag=;
}
}
printf("\n");
}
}
大整数加法 HDU1002的更多相关文章
- HDU1002——大整数加法
题目: I have a very simple problem for you. Given two integers A and B, your job is to calculate the S ...
- A——大整数加法(HDU1002)
题目: I have a very simple problem for you. Given two integers A and B, your job is to calculate the S ...
- AC日记——大整数加法 openjudge 1.6 10
10:大整数加法 总时间限制: 1000ms 内存限制: 65536kB 描述 求两个不超过200位的非负整数的和. 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0. 输出 ...
- 2981:大整数加法-poj
2981:大整数加法 总时间限制: 1000ms 内存限制: 65536kB 描述 求两个不超过200位的非负整数的和. 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0. 输 ...
- POJ 2506 Tiling(递推+大整数加法)
http://poj.org/problem?id=2506 题意: 思路:递推.a[i]=a[i-1]+2*a[i-2]. 计算的时候是大整数加法.错了好久,忘记考虑1了...晕倒. #includ ...
- openjudge计算概论-大整数加法
/*=====================================================================1004:大整数加法总时间限制: 1000ms 内存限制: ...
- 剑指offer第12题打印从1到n位数以及大整数加法乘法
字符和数字加减就是字符的ASCII码和数字直接加减. 方法一: 1)在字符串操作中给一个整形数字加(字符0)就是把它转化为字符,当然给一个字符减去(字符0)就可以把它转化为数字了:如果确实是最后 ...
- Javascript实现大整数加法
记得之前面试还被问到过用两个字符串实现两个大整数相加,当时还特别好奇好好的整数相加,为什么要用字符串去执行.哈哈,感觉当时自己还是很无知的,面试官肯定特别的无奈.今天在刷算法的时候,无意中看到了为什么 ...
- [CodeWars][JS]实现大整数加法
问题描述 实现‘字符串加法’,即将两个以字符串形式表示的数字相加,得到结果然后返回一个新的字符串. 例如:输入‘123’,‘321’,返回‘444’. 这样在进行两个任意大的整数相加的时候,既不会溢出 ...
随机推荐
- 大数据自学4-Hue集成环境中各模组说明
前面已经学习了如何将数据从关系型数据库导入到Hive/HDFS,并且在Windows客户端查询导入的数据,接下来继续学习CDH,知识点: 1.Hue环境中DB Query如何使用,DB Query这个 ...
- 离开(切换)当前页面时改变页面title
document.addEventListener('visibilitychange', function () { if (document.visibilityState == 'hidden' ...
- uwsgi xml 配置
uwsgi 用来做nginx和应用之间的桥梁,负责接收nginx动态转发过来的用户请求,其配置方式有多种,我一般选择<xml>标签的形式 下面的这些配置仅限于ubuntu下用apt-get ...
- Golang时间函数及测试函数执行时间案例
package main import ( "fmt" "time" ) func main(){ //[时间获取及格式化] //获取当前时间 now_time ...
- Linux下的查找技巧
Find知识点: -mtime ——修改时间 -ctime ——创建时间 -atime ——访问时间 mtime 举例说明: -mtime n : n为数字,意思为在n天之前的“一天之内”被更改过内容 ...
- http请求记录
Request Headers 请求头 Content-Type 默认值: "application/x-www-form-urlencoded".发送信息至服务器时内容编码类型 ...
- 如何写好接口(php写app移动端接口示例)
原文链接:https://blog.csdn.net/xwh670570759/article/details/52130585?utm_source=blogxgwz0
- 异步任务利器Celery(二)在django项目中使用Celery
Celery 4.0支持django1.8及以上的版本,低于1.8的项目使用Celery 3.1. 一个django项目的组织如下: - proj/ - manage.py - proj/ - __i ...
- python ---24 正则表达式 re模块
一.正则表达式 1.字符组 ① [abc] 匹配a或b或c ② [a-z] 匹配a到z之间的所有字⺟ [0-9]匹配所有阿拉伯数字 2.元字符 3.量词 4.重要搭配 ① .*? ② .*?x ...
- topcoder srm 707 div1
1 构造一个棋盘,长宽n,m不超过50,每个格子为障碍或者非障碍两种,使得从(0,0)到(n-1,m-1)的最短路为给定的值k. 思路:如果k小于等于98,那么一定存在没有障碍的棋盘满足要求.否则,最 ...