【HDOJ】1753 大明A+B
注意数据格式,可以是整数,并且注意输出最简化浮点数。
#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的更多相关文章
- hdoj 1753 大明A+B 高精度/java
大明A+B Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- HDOJ 1753 大明A+B
JAVA大数.... 大明A+B Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- [HDOJ] 1753.大明A+B (大数加法)
Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是那个只会做100以内加法的那个"小明 ...
- HDOJ 1753 明朝A+B
http://acm.hdu.edu.cn/showproblem.php? pid=1753 大明A+B Time Limit: 3000/1000 MS (Java/Others) M ...
- hdu 1753 大明A+B
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1753 容易出错的事例: 0.1 0.2 1.88 22.22 1 0.01 大概出错的几个点,做久了思维根 ...
- hdu 1753 大明A+B(高精度小数加法)
//深刻认识到自己的粗心,为此浪费了一天.. Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫"大明". 这时他已经不是 ...
- HDU 1753 大明A+B (大正小数加法、字符串处理)
大明A+B Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- HDU 1753 大明A+B(字符串模拟,简单题)
简单题,但要考虑一些细节: 前导0不要,后导0不要,小数长度不一样时,有进位时,逆置处理输出 然后处理起来就比较麻烦了. 题目链接 我的代码纯模拟,把小数点前后分开来处理,写的很繁杂,纯当纪念——可怜 ...
- hdu 1753 大明A+B(大数)
题意:小数大数加法 思路:大数模板 #include<iostream> #include<stdio.h> #include<string.h> using na ...
随机推荐
- Ext.Net学习笔记02:Ext.Net用法概览
这两天越来越觉得Ext.Net很强大,如果运用熟练可以极大的提高编程效率.如果你也要学习Ext.Net,推荐你看一下<Ext.Net Web 应用程序开发教程>. Ext.Net与ExtJ ...
- react native android 开发,基础配置笔记。
一.React-native-device-info https://github.com/rebeccahughes/react-native-device-info 二.修改App名称 三.定位权 ...
- jsonp调用webapi和mvc
webapi代码如下: public string Get(int id) { var callback = HttpContext.Current.Request["callback&qu ...
- switch case实现两个数的算术运算
方法一: package com.liaojianya.chapter1; import java.util.Scanner; public class SwitchDemo1 { public st ...
- NOSql之redis的学习
/** * 这里是我的虚拟机相关的启动命令 /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf /usr/local/r ...
- PHP类中的__get()和__set函数到底有什么用?
当试图获取一个不可达变量时,类会自动调用__get. 同样的,当试图设置一个不可达变量时,类会自动调用__set. 在网站中,这两个并不是什么非用不可的函数. 例如: Class Test { ...
- 3DMAX 建立场景 工作流程
建立3D渲染首先建立房型.毕竟我们在做的是三维房间的渲染.建立房型线有几个环节都要用到 我们看一眼最终的渲染效果. 利用我们第一步建立的房型线做模型 房型线通过膨胀变成墙壁 再通过房型线生成屋顶天花和 ...
- 如何解决PHP中文乱码问题
如何解决PHP中文乱码问题 一.解决HTML中中文乱码问题方法 1.在head标签里面加入UTF8编码(国际化编码):UTF-8是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的. ...
- DES原理与实现
一 DES综述 DES是对称密码的一种,它使用56位秘钥对64位长分组进行加密.DES对每个分组的内容都会进行16轮迭代,每轮的操作相同但是对应不同的子秘钥.所有的子秘钥都是由主密钥推导而来. 64位 ...
- Navigation bar 的注意事项
Navigation bar 的注意事项 Bar button item 使用 button 作为 custom view,初始化 isEnabled 为 false,注意顺序 需要设置 bar bu ...