大明A+B(大数相加)解题报告
这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。
现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。
每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。
1.1111111111 2.3444323343
1 1.1
3.4555434454
2.1
#include<stdio.h>
#include<string.h>
int main()
{
char a[410],b[410];
int a1[410],a2[410],b1[410],b2[410],p1,p2,lena,lenb,i,j,point1,point2;
while(scanf("%s%s",a,b)!=EOF)
{
memset(a1,0,sizeof(a1));//整数
memset(a2,0,sizeof(a2));//小数
memset(b1,0,sizeof(b1));//整数
memset(b2,0,sizeof(b2));//小数
lena=strlen(a);
lenb=strlen(b);
p1=lena;
for(i=0;i<lena;i++){
if(a[i]=='.'){
p1=i; //整数长度
break;
}
}
p2=lenb;
for(i=0;i<lenb;i++){
if(b[i]=='.'){
p2=i; //整数长度
break;
}
}
for(i=0;i<p1;i++){
a1[p1-1-i]=a[i]-'0'; // 整数转移 (倒置)
}
for(j=0,i=p1+1;i<lena;i++,j++){
a2[j]=a[i]-'0'; //小数转移
}
for(i=0;i<p2;i++){
b1[p2-1-i]=b[i]-'0'; // 整数转移 (倒置)
}
for(j=0,i=p2+1;i<lenb;i++,j++){
b2[j]=b[i]-'0'; //小数转移
}
for(i=400;i>0;i--){ //小数相加
a2[i]=a2[i]+b2[i];
if(a2[i]>=10){
a2[i]-=10;
a2[i-1]++;
}
}
a2[i]=a2[i]+b2[i];
if(a2[i]>=10){
a2[i]-=10;
a1[0]++;
}
point1=-1;
for(i=400;i>=0;i--){ //小数除去后导0
if(a2[i]!=0){
point1=i; //找到小数最末尾不为0的位置
break;
}
}
lena=p1;lenb=p2;
int len=lena>lenb?lena:lenb; //整数相加
for(i=0;i<len;i++){
a1[i]+=b1[i];
if(a1[i]>=10){
a1[i]-=10;
a1[i+1]++;
}
}
point2=0;
for(j=i;j>=0;j--){ //判断、除去前导0
if(a1[j]!=0){
point2=1;
}
if(point2){
printf("%d",a1[j]);
}
}
if(point2==0){
printf("0");
}
if(point1!=-1){
printf(".");
for(i=0;i<=point1;i++){
printf("%d",a2[i]);
}
}
printf("\n");
}
return 0;
}
终于搞腚了
大明A+B(大数相加)解题报告的更多相关文章
- LeetCode :2.两数相加 解题报告及算法优化思路
题目连接:2.两数相加 题意 题目难度标为 中等, 因为题意上有一部分理解难度,以及需要数据结构的链表基础. 还不知道到链表的童鞋可以粗略的看下百度百科或者是翻出数据结构的书看一看,通俗一点的语言来解 ...
- 洛谷 P3332 [ZJOI2013]K大数查询 解题报告
P3332 [ZJOI2013]K大数查询 题目描述 有\(N\)个位置,\(M\)个操作.操作有两种,每次操作如果是\(\tt{1\ a\ b\ c}\)的形式表示在第\(a\)个位置到第\(b\) ...
- LeetCode 2 Add Two Sum 解题报告
LeetCode 2 Add Two Sum 解题报告 LeetCode第二题 Add Two Sum 首先我们看题目要求: You are given two linked lists repres ...
- LeetCode 1 Two Sum 解题报告
LeetCode 1 Two Sum 解题报告 偶然间听见leetcode这个平台,这里面题量也不是很多200多题,打算平时有空在研究生期间就刷完,跟跟多的练习算法的人进行交流思想,一定的ACM算法积 ...
- poj1173 解题报告
poj1173 解题报告2013-07-21 13:31 by 期待 ., 42 阅读, 0 评论, 收藏, 编辑 http://poj.org/problem?id=1173 发现此题资料甚少,斗胆 ...
- HDU-2032解题报告
Hdu-2032解题报告题意:实现给定行数的杨辉三角的输出. 杨辉三角的特点:每一行数据的开头和结尾是1,然后其他的数据是由其上一个数据与其左上角的数据之和组成11 11 2 11 3 3 11 4 ...
- LeetCode - 167. Two Sum II - Input array is sorted - O(n) - ( C++ ) - 解题报告
1.题目大意 Given an array of integers that is already sorted in ascending order, find two numbers such t ...
- ACM-ICPC 2017 Asia HongKong 解题报告
ACM-ICPC 2017 Asia HongKong 解题报告 任意门:https://nanti.jisuanke.com/?kw=ACM-ICPC%202017%20Asia%20HongKon ...
- USACO Section2.1 The Castle 解题报告
castle解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- Leetcode 115 Distinct Subsequences 解题报告
Distinct Subsequences Total Accepted: 38466 Total Submissions: 143567My Submissions Question Solutio ...
随机推荐
- hdu5294 网络流+dijskstr
题意:给你n个墓室,m条路径,一个人在1号墓室(起点),另一个人在n号墓室(终点),起点的那个人只有通过最短路径才能追上终点的那个人,而终点的那个人能切断任意路径. 第一问——终点那人要使起点那人不能 ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列1-基本概念和架构
前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型 ...
- java.security.NoSuchAlgorithmException: AES KeyGenerator not available
异常信息 Caused by: Java.lang.IllegalStateException: Unable to acquire AES algorithm. This is required t ...
- Spring源码阅读(七)
这一讲主要分析bean注册过程中各种初始化方法回调的执行逻辑(initializeBean) /** * Initialize the given bean instance, applying fa ...
- flask 在视图函数中验证表单
在视图函数中验证表单 因为现在的basic_form视图同时接受两种类型的请求:GET请求和POST请求.所以我们要根据请求方法的不同执行不同的代码.具体来说,首先是实例化表单,如果是GET请求,就渲 ...
- 20165316 预备作业3 Linux安装及学习
Linux安装 我下载的是VirtualBox 5.2.6和Ubuntu 17.10.1,感觉这两个版本的兼容性不是太好,因为我在Oracle的官网社区中看到不少新版本的问题没有得到解决,而老版本(V ...
- AtCoder Beginner Contest 084(AB)
A - New Year 题目链接:https://abc084.contest.atcoder.jp/tasks/abc084_a Time limit : 2sec / Memory limit ...
- [转载]Javascript:history.go()和history.back()的用法和区别
Javascript:history.go()和history.back()的用法和区别 简单的说就是:go(-1): 返回上一页,原页面表单中的内容会丢失:back(): 返回上一页,原页表表单中的 ...
- pic_scrapy_python
# _*_ coding:UTF-8 _*_ import requests,json,time,sys from contextlib import closing class get_photos ...
- WinCHM 制作开发知识库,So easy!!!
开发过程中可能需要一些团队需要相互参照的东西,如前后台开发中的接口定义,团队开发规范,公用的类库,开发FAQ等 ,可以考虑用WinCHM这种工具制作开发知识库,然后发布至一Web服务器上,这样开发人员 ...