C语言超大数据相加计算整理

在做ACM 1002题时,整理得到。

#include<stdio.h>
#include<string.h>
#define MAX
1000
void zero(char *s,int len)
{
int
i;
for(i=0;i<len;i++)
s[i]-=‘0‘;
}
void back(char *s,int
len)
{
int i;
for(i=0;i<len;i++)
s[i]+=‘0‘;
}
int
main()
{
char a[20][MAX],b[20][MAX],c[20][MAX+2];
int
alen,blen;
int
i,T,k[20]={0},t,j,n;
do
{
scanf("%d",&T);
}while(T<=0||T>20)
;
for(i=0;i<T;i++)
{
scanf("%s
%s",a[i],b[i]);
alen=strlen(a[i])
;
blen=strlen(b[i]);
zero(a[i],alen);
zero(b[i],blen);
n=alen>blen?alen:blen;
for(j=0;j<n+5;j++)
c[i][j]=0;
for(j=alen-1,n=blen-1;(n>=0)&&(j>=0);j--,n--,k[i]++)
{
if((c[i][k[i]]=a[i][j]+b[i][n]+c[i][k[i]])
>9)
{
c[i][k[i]+1]=1;
c[i][k[i]]=c[i][k[i]]%10;
}
}
while(j>=0)
{
if((c[i][k[i]]=c[i][k[i]]+a[i][j])>9)
c[i][k[i]+1]=1;
c[i][k[i]]=c[i][k[i]]%10;

j--;
k[i]++;
}
while(n>=0)
{
if((c[i][k[i]]=c[i][k[i]]+b[i][n])>9)
c[i][k[i]+1]=1;
c[i][k[i]]=c[i][k[i]]%10;

n--;
k[i]++;
}
for(;c[i][k[i]]==0;k[i]--);
back(a[i],alen);
back(b[i],blen);
}

for(i=0;i<T;i++)
{

printf("Case %d:\n",i+1); printf("%s + %s =
",a[i],b[i]);
for(;k[i]>=0;k[i]--)
printf("%d",c[i][k[i]]);
if(i<T-1)printf("\n\n");
else
printf("\n");
}
return 0;
}

时间: 2024-11-10 03:26:02

C语言超大数据相加计算整理的相关文章

C语言超大数相加求和、加减乘除算法实现

#include <stdio.h> #include <stdbool.h> #include <string.h> #include <stdlib.h> #define MAXLEN 20 int arr1[MAXLEN]; int arr2[MAXLEN]; char str1[MAXLEN]; char str2[MAXLEN]; void convertBin(int intNum) {    static int bitSize = 32;  

(Jquery)避免数据相加小数点后产生多位数和计算精度损失

/** * 加法运算,避免数据相加小数点后产生多位数和计算精度损失. * * @param num1加数1 | num2加数2 */ function numAdd(num1, num2) { var baseNum, baseNum1, baseNum2; try { baseNum1 = num1.toString().split(".")[1].length; } catch (e) { baseNum1 = 0; } try { baseNum2 = num2.toString

史上最全“大数据”学习资源整理

史上最全"大数据"学习资源整理 当前,整个互联网正在从IT时代向DT时代演进,大数据技术也正在助力企业和公众敲开DT世界大门.当今"大数据"一词的重点其实已经不仅在于数据规模的定义,它更代表着信息技术发展进入了一个新的时代,代表着爆炸性的数据信息给传统的计算技术和信息技术带来的技术挑战和困难,代表着大数据处理所需的新的技术和方法,也代表着大数据分析和应用所带来的新发明.新服务和新的发展机遇. 为了帮助大家更好深入了解大数据,云栖社区组织翻译了GitHub Aweso

R语言中文社区历史文章整理(类型篇)

R语言中文社区历史文章整理(类型篇) R包: R语言交互式绘制杭州市地图:leafletCN包简介 clickpaste包介绍 igraph包快速上手 jiebaR,从入门到喜欢 Catterplots包,让你绘制不一样的图 今天再来谈谈REmap包 ggplot2你需要知道的都在这... R访问数据库管理系统(通过RODBC包和RMySQL包两种方式) NLP--自然语言处理(三)text2vec包 Rattle:数据挖掘的界面化操作 借助caret包实现特征选择的工作 R语言的高质量图形渲染

大数据相加

页面: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>大数据相加</title> </head> <body> <h3 style="margin-left:800px;margin-top: 200px;">我是大数据相加</h3>

大数据学习路线整理

一.大数据技术基础 1.linux操作基础 linux系统简介与安装    linux常用命令–文件操作    linux常用命令–用户管理与权限    linux常用命令–系统管理    linux常用命令–免密登陆配置与网络管理    linux上常用软件安装    linux本地yum源配置及yum软件安装    linux防火墙配置    linux高级文本处理命令cut.sed.awk    linux定时任务crontab 2.shell编程 shell编程–基本语法    shel

两个超大数相加

解决超大数相加的问题的一种思路是把整形转化成字符串,废话不多说直接上代码,已经调试通过. #include<iostream> #include<string> #include<cmath> using namespace std; string add(string str1, string str2) { int i; string str; int len_str1 = str1.length(); int len_str2 = str2.length(); i

Oracle EBS-SQL (MRP-7):检查MRP计划运行报错原因之超大数据查询2.sql

The following scripts can be used to check for huge line numbers: -- PO Requisitions select * from PO_REQUISITION_LINES_ALL where LINE_NUM > 1000000000; -- PO Lines select * from PO_LINES_ALL where LINE_NUM > 1000000000; -- Receiving Supply SELECT *

数据汇总计算和分析的反思

以下内容,都经过本人实践验证过. 若转发,请在标题上标记[转],并注明原文链接:http://www.cnblogs.com/robinjava77/p/6285747.html,作者名称:robin. 并在文章首行附上本段话.否则,作者保留追究的权利. 术语定义: 1.片:本周.本月.本年.近两月.近三月.近半年.近一年和至今八个维度 诉求:基于**年的日数据,进行计算汇总,分别以本周.本月.本年.近两月.近三月.近半年.近一年和至今八个维度进行统计精准性修复,时间消耗越低越好. 场景: 1.