/*=====================================================================
1004:大整数加法
总时间限制: 1000ms 内存限制: 65536kB
描述
求两个不超过200位的非负整数的和。

输入
有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。
输出
一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
样例输入
22222222222222222222
33333333333333333333
样例输出
55555555555555555555

解析:要注意输入的两个数都是0的情况需要特殊处理输出结果的过程。
=======================================================================*/

#include<stdio.h>
#include<string.h>
int main()
{
char a[],b[],c[];
int lenA,lenB,min,max,i,j,k;
int ai,bi,ci;
bool f=true;
freopen("add.in","r",stdin);
//freopen("add.out","w",stdout);
gets(a);
gets(b);
lenA=strlen(a);
lenB=strlen(b);
max=(lenA>lenB?lenA:lenB);
min=(lenA<lenB?lenA:lenB);
c[max]='\0';
ci=;
i=lenA-;
j=lenB-;
k=max-;
while(min>)//注意:这里不能写min>=0
{
ai=a[i]-'';
bi=b[j]-'';
c[k]=(ai+bi+ci)%+'';
ci=(ai+bi+ci)/;
i--;
j--;
k--;
min--;
}
if(lenA>lenB)
{
for(i=lenA-lenB-;i>=;i--)
{
c[i]=(a[i]-''+ci)%+'';
ci=(a[i]-''+ci)/;
}
}
else if(lenB>lenA)
{
for(i=lenB-lenA-;i>=;i--)
{
c[i]=(b[i]-''+ci)%+'';
ci=(b[i]-''+ci)/;
}
}
if(ci!=)
{
printf("%c",ci+'');
printf("%s",c);
f=false;
}
else
{
for(i=;i<max;i++)
if(c[i]!='') break;
for(;i<max;i++)
{
f=false;
printf("%c",c[i]);
}
}
if(f)//注意:假如输入的两个数都是0,结果就应该是要输出0了。
printf("");
printf("\n");
return ;
}

openjudge计算概论-大整数加法的更多相关文章

  1. OpenJudge计算概论-分离整数的各个数位

    /*================================================================= 分离整数的各个数位 总时间限制: 1000ms 内存限制: 65 ...

  2. AC日记——大整数加法 openjudge 1.6 10

    10:大整数加法 总时间限制:  1000ms 内存限制:  65536kB 描述 求两个不超过200位的非负整数的和. 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0. 输出 ...

  3. HDU1002——大整数加法

    题目: I have a very simple problem for you. Given two integers A and B, your job is to calculate the S ...

  4. 2981:大整数加法-poj

    2981:大整数加法 总时间限制:  1000ms 内存限制:  65536kB 描述 求两个不超过200位的非负整数的和. 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0. 输 ...

  5. POJ 2506 Tiling(递推+大整数加法)

    http://poj.org/problem?id=2506 题意: 思路:递推.a[i]=a[i-1]+2*a[i-2]. 计算的时候是大整数加法.错了好久,忘记考虑1了...晕倒. #includ ...

  6. OpenJudge计算概论-取石子游戏

    OpenJudge计算概论-取石子游戏[函数递归练习] /*====================================================================== ...

  7. A——大整数加法(HDU1002)

    题目: I have a very simple problem for you. Given two integers A and B, your job is to calculate the S ...

  8. 剑指offer第12题打印从1到n位数以及大整数加法乘法

       字符和数字加减就是字符的ASCII码和数字直接加减. 方法一: 1)在字符串操作中给一个整形数字加(字符0)就是把它转化为字符,当然给一个字符减去(字符0)就可以把它转化为数字了:如果确实是最后 ...

  9. Openjudge计算概论——数组逆序重放【递归练习】

    /*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...

随机推荐

  1. MVC-Cache-1.输出缓存(Cache:[1].输出缓存2.应用程序缓存)

    缓存前提概念: 1.使用缓存的目的就是为提供网站性能,减轻对数据库的压力,提高访问的速度. 2.如果使用缓存不当,比不使用缓存造成的影响更恶劣(缓存数据的更新不及时.缓存过多等). 3..net MV ...

  2. python网络爬虫之爬取图片

    今天使用requests和BeautifulSoup爬取了一些图片,还是很有成就感的,注释可能有误,希望大家多提意见: 方法一:requests import requests from bs4 im ...

  3. Django之简介

    一.MVC模型与MTV模型 MVC模型就是Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起 ...

  4. 前端BOM对象

    location.href 查看当前的url location.href http://www.baidu.com 跳转URL location.reload 重载当前页面 windows.alert ...

  5. Elasticsearch 最佳运维实践 - 总结(一)

    对于Elasticsearch的学习,需要清楚的明白它的每个核心概念,由浅入深的了解,才能更好的掌握这门技术.下面先简单罗列下Elasticsearch的核心概念: 一.Elasticsearch数据 ...

  6. 跨域访问支持(Spring Boot、Nginx、浏览器)

    原文:http://www.itmuch.com/work/cors/ 最近家中事多,好久没有写点啥了.一时间竟然不知从何说起.先说下最近家里发生的事情吧: 老爸肺气肿住院: 老妈甲状腺囊肿 儿子喘息 ...

  7. 使用C#应用程序与Arduino开发板进行通信

    在本文中,我们将一个Arduino Pro Mini开发板连接到PC,并且使用C# Windows应用程序与其进行通信. 将硬件连接到PC是非常有利的,不仅是因为你可以发送命令以及监控状态,还可以实时 ...

  8. 【数组模拟-小顶堆的插入构造/遍历】PAT-L2-012.-关于堆的判断--数组模拟

    L2-012. 关于堆的判断 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: “x is the root”:x是根结点: “x and y ar ...

  9. finalize关键字小结

    1.先看一下Object类中的finalize方法:可见里面什么也没有,说明让我们自己重写 * @throws Throwable the {@code Exception} raised by th ...

  10. 基于 CSS 的 Web 框架 CJSS

    CJSS 是一个基于 CSS 的 Web 框架,所有效果都在 CSS 文件中生效,可以在 CSS 中使用它添加更多功能,或者构建一个完整的页面. 使用方法: HTML 想要使用某个组件,在 CSS 文 ...