注意数据格式,可以是整数,并且注意输出最简化浮点数。

 #include <stdio.h>
#include <string.h> #define MAXNUM 420 char a[MAXNUM], b[MAXNUM], c[MAXNUM], d[MAXNUM];
int lena, lenb;
int posa, posb; int addf(int bega, int begb, int *carry);
int addi(int enda, int endb, int carry);
void add();
void output(int in, int fn); int main() { while (scanf("%s %s", a, b) != EOF) {
add();
memset(a, , sizeof(a));
memset(b, , sizeof(b));
memset(c, , sizeof(c));
memset(d, , sizeof(d));
} return ;
} void add() {
int i, carry, in, fn; posa = posb = -;
for (i=; i<MAXNUM; ++i) {
if (a[i] == '\0')
break;
else if (a[i] == '.')
posa = i;
else
a[i] -= '';
}
lena = i;
if (posa == -)
posa = lena; for (i=; i<MAXNUM; ++i) {
if (b[i] == '\0')
break;
else if (b[i] == '.')
posb = i;
else
b[i] -= '';
}
lenb = i;
if (posb == -)
posb = lenb; fn = addf(posa+, posb+, &carry);
in = addi(posa, posb, carry);
output(in, fn);
} void output(int in, int fn) {
int i; // printf the integer part
while (in>= && c[in]==)
--in;
if (in < )
printf("");
else {
for (i=in; i>=; --i)
printf("%d", c[i]);
} fflush(stdout);
// printf the float part
while (fn>= && d[fn]==)
--fn;
if (fn>=) {
printf(".");
for (i=; i<=fn; ++i)
printf("%d", d[i]);
}
printf("\n");
fflush(stdout);
} int addi(int enda, int endb, int carry) {
int cn = ; while (enda || endb) {
c[cn] += carry;
if (enda) {
--enda;
c[cn] += a[enda];
}
if (endb) {
--endb;
c[cn] += b[endb];
}
carry = c[cn]/;
c[cn] %= ;
++cn;
}
c[cn] += carry; return cn;
} int addf(int bega, int begb, int *carry) {
int i, len, ov = ;
int flena = lena - bega;
int flenb = lenb - begb; len = (flena>flenb) ? flena : flenb; for (i=len-; i>=; --i) {
d[i] += ov;
if (bega+i < lena)
d[i] += a[bega+i];
if (begb+i < lenb)
d[i] += b[begb+i];
ov = d[i]/;
d[i] %= ;
} *carry = ov; return len;
}

【HDOJ】1753 大明A+B的更多相关文章

  1. hdoj 1753 大明A+B 高精度/java

    大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  2. HDOJ 1753 大明A+B

    JAVA大数.... 大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  3. [HDOJ] 1753.大明A+B (大数加法)

    Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是那个只会做100以内加法的那个"小明 ...

  4. HDOJ 1753 明朝A+B

     http://acm.hdu.edu.cn/showproblem.php? pid=1753 大明A+B Time Limit: 3000/1000 MS (Java/Others)    M ...

  5. hdu 1753 大明A+B

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1753 容易出错的事例: 0.1 0.2 1.88 22.22 1 0.01 大概出错的几个点,做久了思维根 ...

  6. hdu 1753 大明A+B(高精度小数加法)

    //深刻认识到自己的粗心,为此浪费了一天.. Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是 ...

  7. HDU 1753 大明A+B (大正小数加法、字符串处理)

    大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  8. HDU 1753 大明A+B(字符串模拟,简单题)

    简单题,但要考虑一些细节: 前导0不要,后导0不要,小数长度不一样时,有进位时,逆置处理输出 然后处理起来就比较麻烦了. 题目链接 我的代码纯模拟,把小数点前后分开来处理,写的很繁杂,纯当纪念——可怜 ...

  9. hdu 1753 大明A+B(大数)

    题意:小数大数加法 思路:大数模板 #include<iostream> #include<stdio.h> #include<string.h> using na ...

随机推荐

  1. web.config详解(配置文件节点说明)

    转载:http://www.zzzj.com/html/20081110/67614.html web.config文件是一个XML文件,它的根结点是<configuration>,在&l ...

  2. 20151225jquery学习笔记---编辑器插件

    编辑器(Editor),一般用于类似于 word 一样的文本编辑器,只不过是编辑为 HTML格式的.分类纯 JS 类型的,还有 jQuery 插件类型的.一. 编辑器简介我们使用的 jQuery 版本 ...

  3. c语言学习之基础知识点介绍(十六):文件操作

    一.文件的分类 1.文本文件:打开之后能看得懂的文件 2.二进制文件:打开之后看不懂,类似乱码之类的文件(视频,音频打开之后,能看.听,是应为电脑中装有播放器,播放器中含有解码器). 二.操作文件的步 ...

  4. 学习笔记_Java_day14—编码实战___一个注册页面的完整流程

  5. Ngen生成Native代码实战及优缺点分析

    先科普一下,.Net是一个用于Windows的托管代码模型,用于高效构建具有视觉上引人注目的用户体验的应用程序.但这个模型生成的代码并非可执行代码,而是由.Net公共语言运行库环境执行的IL代码.所以 ...

  6. Java实战之01Struts2-05contextMAP、EL、OGNL

    十五.contextMap 1.动作类的生命周期 明确:动作类是多例的,每次动作访问,动作类都会实例化.所以是线程安全的.与Struts1的区别是,struts1的动作类是单例的. 2.请求动作的数据 ...

  7. C++模板学习随笔

    本文学习内容参考:http://www.cnblogs.com/gw811/archive/2012/10/25/2738929.html C++模板 1.模板分为函数模板和类模板两种类型 函数模板针 ...

  8. C++学习指南

    转载于stackoverflow:http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list 感谢Ge ...

  9. [C#]Task异步操作

    1.代码示例 using System; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplicat ...

  10. chattr命令

    chattr命令用于改变文件属性. 这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式: a:让文件或目录仅供附加用途. b:不更新文件或目录的最后存取时间. c:将文件 ...