大数的加法函数--c语言

浏览网站http://paste.ubuntu.com/23687758/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char * largeAdd(char a[],char b[]){
/*
//传进来两个个字符串,返回结果为字符串 错误字符返回NULL
大位数的加法函数 ,位数不能超过1000
要加头文件<string.h>
*/
int a_num[1000]={0},b_num[1000]={0};
int a_len,b_len,i,j,len,sum;
char result[1001];
a_len=strlen(a);
b_len=strlen(b);
len=a_len>b_len?a_len:b_len;//返回较大的值
for(i=0;i<a_len;i++){
if(a[i]<‘0‘||a[i]>‘9‘) return NULL;
a_num[a_len-i-1]=a[i]-‘0‘;
}
for(i=0;i<b_len;i++){
if(b[i]<‘0‘||b[i]>‘9‘) return NULL;
b_num[b_len-i-1]=b[i]-‘0‘;
}
for(i=0;i<len;i++){
sum=a_num[i]+b_num[i];
a_num[i]=sum%10;
a_num[i+1]=a_num[i+1]+sum/10;
}

if(a_num[len]>0){
for(i=len;i>=0;i--){
result[len-i]=a_num[i]+‘0‘;
}
result[len+1]=‘\0‘;
}else{
for(i=len-1;i>=0;i--){
result[len-i-1]=a_num[i]+‘0‘;
}
result[len]=‘\0‘;
}
return result;
}
int main(){
char a[1000],b[1000];
char *result;
gets(a);
gets(b);
result=largeAdd(a,b);
printf("%s",result);
return 0;
}

//编程爱好者 QQ群 248351598
时间: 2024-11-07 17:34:32

大数的加法函数--c语言的相关文章

剑指offer编程题Java实现——面试题12相关题大数的加法、减法、乘法问题的实现

用字符串或者数组表示大数是一种很简单有效的表示方式.在打印1到最大的n为数的问题上采用的是使用数组表示大数的方式.在相关题实现任意两个整数的加法.减法.乘法的实现中,采用字符串对大数进行表示,不过在具体的计算中,还是要将字符串转化成字符数组来进行计算. 实现两个大数的加法,要考虑到两个问题,两个数的和的位数问题,以及如何处理两个数按位相加产生的进位问题.首先两个整数相加,两个数的和的位数最多比最大的整数的位数多1:这样和的位数就确定了.对于进位问题,我的做法是先进行按位相加,相加操作完成后再按照

实现一个数值加法函数,返回两个数字的和。要求能进行参数验证,若参数不是数字或为空则抛出异常。

<body> <script type="text/javascript"> function Sum(arg1,arg2){ //数值加法函数 var sarg1 = new String(arg1); //将传入的参数转为字符串以便进行参数检查 var sarg2 = new String(arg2); //将参数2转为字符类型 if( (sarg1=="")||(sarg2=="") ) //确保参数不为空 { va

YT15-HDU-How many fibs(大数相加法)

Problem Description Recall the definition of the Fibonacci numbers: f1 := 1 f2 := 2 fn := fn-1 + fn-2 (n >= 3) Given two numbers a and b, calculate how many Fibonacci numbers are in the range [a, b]. Input The input contains several test cases. Each

3203 数组做函数参数----排序函数--C语言版

3203: 数组做函数参数----排序函数--C语言版 时间限制: 1 Sec  内存限制: 128 MB提交: 253  解决: 151[提交][状态][讨论版][命题人:smallgyy] 题目描述 定义一个函数来完成对参数数组中元素的排序工作,函数声明如下: void sort(int array[ ]);//该函数完成对array数组的排序工作 在以下程序的基础上,完成对sort函数的定义,提交时,只提交sort函数的定义即可. #include <stdio.h> void sort

3204: 数组做函数参数--排序函数2--C语言

3204: 数组做函数参数--排序函数2--C语言 时间限制: 1 Sec  内存限制: 128 MB提交: 211  解决: 143[提交][状态][讨论版][命题人:smallgyy] 题目描述 定义一个函数来完成对参数数组中元素的排序工作,函数声明如下: void sort(int array[ ],int n);//该函数完成对array数组的前n个元素的排序工作 在以下程序的基础上,完成对sort函数的定义,提交时,只提交sort函数的定义即可. #include <stdio.h >

函数绘图语言解释器

一.实验目的 通过做上机题加深对编译器构造原理和方法的理解,巩固所学知识. <1> 会用正规式和产生式设计简单语言的语法: <2> 会用递归下降子程序编写编译器或解释器: <3> 会写上机报告. 二.实验环境 Dev C++ 5.11 三.题目及要求 为函数绘图语言编写一个解释器,解释器接受用绘图语言编写的源程序,经语法和语义分析之后,将源程序所规定的图形显示在显示屏(或窗口)中.通过自己动手编写解释器,掌握语言翻译特别是语言识别的基本方法. 四.实验内容 1.词法分析

&lt;编译原理 - 函数绘图语言解释器(1)词法分析器 - python&gt;

<编译原理 - 函数绘图语言解释器(1)词法分析器 - python> 背景 编译原理上机实现一个对函数绘图语言的解释器 - 用除C外的不同种语言实现 解释器分为三个实现块: 词法分析器:用于识别一条语句中的关键词是否符合预先定义的规则. 语法分析器:用来确定一条语句是否满足语法规则. 解释器:用来确定满足语法规则的句子,在意思上是否符合要求. 设计思路: 设计记号:词法分析器读取一个序列并根据构词规则把序列转化为记号流 定义一个字典:把所有符合一个模式的保留字.常量名.参数名.函数名等放进字

&lt;编译原理 - 函数绘图语言解释器(3)解释器 - python&gt;

<编译原理 - 函数绘图语言解释器(3)解释器 - python> 背景 编译原理上机实现一个对函数绘图语言的解释器 - 用除C外的不同种语言实现 设计思路: 将语法分析器并入绘图功能 继承语法分析器覆盖重写 用Pycharm写了一个.py文件: parserclass.py 输入流是语法分析器得到的语法树,输出流是绘制的图像 测试文本序列: //----------------测试程序1:分别测试------------------------ ORIGIN IS (100,300); //

大数四则运算之加法运算--------C语言版(未考虑负数)

/* 声明两个字符数组,用于存储大数,声明两个整数型数组便于计算,将字符数组中的元素转换为对应整数存于整数数组中,将低位放在整数数组低位,便于对齐计算 判断是否有进位,计算结果高位先输出,从数组后往前找,找到第一个不为0的数,可以设置一个标志位.*/ #include<stdio.h>#include<string.h> int main(){ int num1[1000],num2[1000],i,j,max; char ch1[1000],ch2[1000]; int flag