大数据加减(Big data addition and subtraction)
一行:一个加法或减法的表达式
输出格式:
一个正整数,表示计算的结果(不可以有前导0)
123456789
#include<stdio.h>
#include<string.h>
int a[]={},b[]={};
int i,ka,kb,k,c,temp;
char s[],ch;
void plus()//高精度加法函数
{
for(i=;i<k;i++)
{
a[i]=a[i]+b[i]+c;//按位加
if(a[i]>=)//处理进位(满十进一)
{
a[i]=a[i]%;
c=;
}
else c=;
}
if(c>)
{
a[k]=c;
k++;
}
}
void minus()//高精度减法函数
{
for(i=;i<ka;i++)
{
if(a[i]<b[i])//判断这一位计算是否要借位
{
c=;
a[i+]--;
}
else
c=;
a[i]=a[i]+c*-b[i];//计算这一位的结果
k=ka;
while(a[k-]==&&k>)
k--;
}
}
int main()
{
scanf("%s",s);
k=;
while((s[k]!='+')&&(s[k]!='-'))//以运算符为界,分开两个操作数,期前部分计入数组a
{
a[k]=s[k]-'';
k++;
}
ch=s[k];//记录操作符
ka=k;//记录操作符当前位置
kb=;
k++;//跳过继续
while(k<strlen(s))//运算符后部分计入数组b
{
b[kb]=s[k]-'';
k++;
kb++;//记录运算符后部分的位数
}
if(ka>=kb) k=ka;//取a和b的最大长度,以便进行按位计算
else k=kb;
for(i=;i<ka/;i++)//读入是从高位到低位的顺序,计算之前应该反序
{
temp=a[i];
a[i]=a[ka-i-];
a[ka--i]=temp;
}
for(i=;i<kb/;i++)//读入是从高位到低位的顺序,计算之前应该反序
{
temp=b[i];
b[i]=b[ka-i-];
b[ka--i]=temp;
}
c=;//进位初始化
if(ch=='+')//传入加法函数
plus();
else //传入减法函数
minus();
for(i=k-;i>=;i--)//按倒序输出结果
{
printf("%d",a[i]);
}
printf("\n");
return ;
}
大数据加减(Big data addition and subtraction)的更多相关文章
- [Swift]LeetCode592. 分数加减运算 | Fraction Addition and Subtraction
Given a string representing an expression of fraction addition and subtraction, you need to return t ...
- 大整数加减运算的C语言实现
目录 大整数加减运算的C语言实现 一. 问题提出 二. 代码实现 三. 效果验证 大整数加减运算的C语言实现 标签: 大整数加减 C 一. 问题提出 培训老师给出一个题目:用C语言实现一个大整数计算器 ...
- [Aaronyang] 写给自己的WPF4.5 笔记6[三巴掌-大数据加载与WPF4.5 验证体系详解 2/3]
我要做回自己--Aaronyang的博客(www.ayjs.net) 博客摘要: Virtualizing虚拟化DEMO 和 大数据加载的思路及相关知识 WPF数据提供者的使用ObjectDataPr ...
- WPF 大数据加载过程中的等待效果——圆圈转动
大家肯定遇到过或将要遇到加载大数据的时候,如果出现长时间的空白等待,一般人的概念会是:难道卡死了? 作为一个懂技术的挨踢技术,即使你明知道数据量太大正在加载,但是假如看不到任何动静,自己觉得还是一种很 ...
- DevExpress ChartControl大数据加载时有哪些性能优化方法
DevExpress ChartControl加载大数据量数据时的性能优化方法有哪些? 关于图表优化,可从以下几个方面解决: 1.关闭不需要的可视化的元素(如LineMarkers, Labels等) ...
- asp.net中TreeView的大数据加载速度优化
由于数据量太大,加载树时间很长,所以进行了优化 前台 .aspx <asp:Panel ID="Panel2" runat="server" Height ...
- 大数据除法(Large data division)
题目描述 Description 除法是计算中的基础运算,虽然规则简单,但是位数太多了,也难免会出错.现在的问题是:给定任意位数(足够大就可以啦O(∩_∩)O)的一个被除数,再给定一个long lon ...
- javascript数据加减问题
需要parseInt把获取到的html(),text()的值转换为数字型,然后进行加减乘除操作就可以了:
- PayPal高级工程总监:读完这100篇论文 就能成大数据高手(附论文下载)
100 open source Big Data architecture papers for data professionals. 读完这100篇论文 就能成大数据高手 作者 白宁超 2016年 ...
随机推荐
- 制作Ubuntu14.04的Openstack镜像
下载好Ubuntu官方镜像安装文件:不要使用desktop版,在virtualbox和vm上都安装报错,因为不需要桌面,所有没去管了. 第一步.准备好如下文件: 1.ubuntu-14.04.4-se ...
- glusterfs快速安装
因为公司ES02集群使用的是SSD磁盘做的raid0,为了保证存放文件的可靠性,即在ES02集群上部署了一套分布式文件系统glusterfs. 结构 ES11 含有gfs程序,并挂载gfs在 ...
- Number Sequence (HDU 1711)
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 汇总前端最最常用的JS代码片段-你值得收藏
原始出处,可拷贝:http://www.w3cfuns.com/notes/25068/1d0d350a974d879e63f1115cf80a3288.html 摘自:http://www.love ...
- JS 一些常用技巧
记录 JS 常用的技巧 1. 生成随机数 2. 解决浮点数问题 3. 无路可走时,看看是不是 事件 冒泡了...
- 1. LAMP----PHP开发环境搭建(Win)
LAMP=Linux+Apache+MySQL+PHP. Step1 安装Apache http://httpd.apache.org/download.cgi 1.打开上面网址->点击File ...
- emmet 教程 emmet快捷键大全
Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示: ...
- Python中enumerate()的使用方法
enumerate 函数用于遍历序列中的元素以及它们的下标: >>> for i,j in enumerate(('a','b','c')): print i,j 0 a1 b2 c ...
- 移动端默认返回按键,使用h5+修改默认事件
hbuilder的h5+提供开发webapp的诸多便利,很多手机自带back虚拟按键,如果不修改其默认事件,点一下app就退出了,所以我这里提供一种修改这个按键默认事件事件的代码. 首先你要用hbui ...
- HDU 5839 Special Tetrahedron
HDU 5839 Special Tetrahedron 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5839 Description Given n ...