`
caozuiba
  • 浏览: 902479 次
文章分类
社区版块
存档分类
最新评论

长整数的基本操作

 
阅读更多
//LongInt.cpp:Definestheentrypointfortheconsoleapplication.
//

#include
"stdafx.h"
#include
"string.h"
#defineMAXLEN50
/**//*
functionInputLongInt()长整数输入函数
*/

intInputLongInt(int*a,char*para)
...{
intlen,i;
charnumber[MAXLEN];
printf(
"请输入[%s]长整数: ",para);
scanf(
"%s",number);
len
=strlen(number);
for(i=len;i>=1;i--)
a[i]
=number[len-i]-'0';
a[
0]=len;
return(a[0]);
}

/**//*
functionOutputLongInt()长整数输出函数
*/

voidOutputLongInt(int*a,char*para)
...{
inti;
printf(
"输出的[%s]长整数: ",para);
for(i=a[0];i>=1;i--)
printf(
"%d",a[i]);
printf(
" ");
}

/**//*
functionFormatLongInt()长整数规范化函数
*/

intFormatLongInt(int*a)
...{
intp;
for(p=1;p<a[0]||a[p]>=10;p++)
...{
if(p>=a[0])
a[p
++]=0;
a[p
++]+=a[p]/10;
a[p]
=a[p]%10;
}

if(p>a[0])
a[
0]=p;
return(a[0]);
}

/**//*
functionLongIntAddLongInt()长整数加长整数函数
相加的和放在数组A中
*/

voidLongIntAddLongInt(int*a,int*b)
...{
inti;
while(a[0]<b[0])
a[
++a[0]]=0;
for(i=1;i<=b[0];i++)
a[i]
+=b[i];
FormatLongInt(a);
}

/**//*
functionLongIntDivInt()长整数除普通整数函数
除得的商放在数组A中,余数放在返回值中
*/

intLongIntDivInt(int*a,intdivisor)
...{
intp,//存储相除后的余数下标
k;//存储数字个数(长整数有效数字个数)
k=p=a[0];
a[
0]=0;
while(p>0)
...{
a[p
-1]+=a[p]%divisor*10;
a[p]
=a[p]/divisor;
if(a[k]==0)
k
--;
p
--;
}

p
=a[0]/10;//保存余数
a[0]=k;//回写有效数字个数
FormatLongInt(a);
return(p);
}

/**//*
functionLongIntDivInt()长整数转换成二进制数函数
转换的二进制数存储数组B中
*/

voidLongIntToBin(int*a,int*b)
...{
intp;
b[
0]=0;
while(a[0]>0)
...{
b[
0]++;
b[b[
0]]=a[1]%2;
p
=a[0];
while(p>0)
...{
if((a[p]%2)&&(p>1))
a[p
-1]+=10;
a[p]
/=2;
if(a[a[0]]==0)
a[
0]--;
p
--;
}

}

}


intmain(intargc,char*argv[])
...{
inta[MAXLEN],b[MAXLEN];
intlen,residue;
/**//*
len=InputLongInt(a);
printf("源长整数的长度是:%d ",len);
str="源";
OutputLongInt(a,str);
len=FormatLongInt(a);
printf("规范化后长整数的长度是:%d ",len);
str="规范化后";
OutputLongInt(a,str);
residue=LongIntDivInt(a,11);
str="除以普通整数11后";
OutputLongInt(a,str);
printf("长整数除以普通整数11后的余数是:%d ",residue);
*/

len
=InputLongInt(a,"第一个加数");
//len=InputLongInt(b,"第二个加数");
//LongIntAddLongInt(a,b);
//OutputLongInt(a,"两数相加的和");
LongIntToBin(a,b);
OutputLongInt(b,
"转换后的二进制数");
printf(
" 应用程序正在运行! ");
return0;
}


分享到:
评论

相关推荐

    c++长整数的代数计算 算法

    长整数的代数计算 ...② 实现两长整数在取余操作下的加、减、乘、除操作,即实现算法来求解a+b mod n, a-b mod n, ab mod n, ab mod n。 ③ 输入输出均在文件中。 ④ 分析算法的时空复杂性。

    长整数的代数计算 算法

    长整数的代数计算 ...② 实现两长整数在取余操作下的加、减、乘、除操作,即实现算法来求解a+b mod n, a-b mod n, ab mod n, ab mod n。 ③ 输入输出均在文件中。 ④ 分析算法的时空复杂性。

    长整数运算.zip

    设计程序实现两个任意长整数的求和运算。 [ 基本要求 ] 《数据结构》题集 利用双向循环链表实现长整数的存储, 每个结点含一个整型变量. 任何整型变量的范围是 -(215-1)~(215-1)。输入和输出形式: 按中国对于长...

    长整数运算完整代码.rar(不需要积分,公益事业)

    长整数的代数计算 【问题描述】 应用线性数据结构解决长整数的计算问题。设计数据结构完成长整数的表示和存储,并...(2) 实现两长整数的加、减、乘、除操作。 (3) 输入输出均在文件中。 (4) 分析算法的时空复杂性

    用链表实现任意长整数的加减法.txt

    (1) 利用链表实现长整数的存储,每个节点含一个整型变量; (2) 整型变量的范围:-(2^15 -1)~(2^15 -1); (3) 输入与输出形式每四位一组,组间用逗号分隔开。如:1986,8213,1935,2736,3299; (4) 界面...

    C语言实现的大整数基本运算库

    该静态库包含大整数运算的基本操作,可以自己设置计算数的长度。目前该库只包含加减乘除,输入,输出和大数比较操作

    任意长整数.zip-任意长的整数加减法运算

    (1)利用链表实现长整数的存储,每个节点含一个整型变量; (2)整型变量的范围:-(2^15 -1)~(2^15 -1); (3)输入与输出形式每四位一组,组间用逗号分隔开。如:1986,8213,1935,2736,3299; (4)界面友好...

    单链表的基本操作(实验)

    (1) 从键盘读入一组整数,按输入顺序形成单链表。并将创建好的单链表元素依次打印在屏幕上。(注意:选择头插法或者尾插法!) (2) 设计一个带选择功能菜单的主函数,菜单中至少具备任意选择删除、插入、查找...

    顺序表的基本插入删除操作

    一个顺序表的所有操作的程序,包括插入删除等基本操作。还有主函数

    大整数运算

    1. 要求大整数的长度可以不受限制,即大整数的十进制位数不受限制,可以为十几位的整数,也可以为500多位的整数,甚至更长;大整数的运算和显示时,只需要考虑正的大整数。如果可能的话,请以秒为单位显示每次大整数...

    C++ 大整数类 高精度运算库

    本运算库提供定长有符号大整数类的声明和基本操作的封装,实现过程仅使用基于C++98标准的基本语法,不依赖于任何标准库或者第三方库,以求最大限度保证代码的移植性(比如GCC和Visual Studio)和安全性(比如STL线程...

    单向链表,包括创建、插入、删除等基本操作

    这是一个关于单向链表的程序,创建了一个有序链表,插入节点,计算学生记录的平均值,最后删除整个链表

    长整型运算.rar

    (1)输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开; (2)相加过程中不能破坏两个操作数链表;不能给长整数规定上限。 【测试数据】 (1)0;0;应输出0 (2)-2345,6789;-7654,3211; 应...

    mysql数据库的基本操作语法

    其中student是表名,n是当前约束从1开始的整数。 指定约束名称: create table student( id int auto_increment primary key, name varchar(25), classes_id int, /*指定约束名称*/ constraint fk_classes_id ...

    python中的real函数-RealPython基础教程:Python基本数据类型介绍.pdf

    实际操作中,整数的长度受限于机器物理内存的⼤⼩。 当然,任何数据类型都会受到物理内存⼤⼩的限制。 理论上,你可以随⼼定义任何长度的整数: &gt;&gt;&gt; print(123123123123123123123123123123123123123123123123 + 1)...

    (2.3)--C语言中的整数1

    C语言中的整数南京大学计算机科学与技术系袁春风C语言支持的基本数据类型C语言声明操作数类型存储长度(位)整数 / 字节整数 / 字整数 / 双字整数 / 双字

    栈表的操作

    //top为整数,代表栈顶元素位置 #include #include #define MAXNUM 50 typedef int Elemtype; typedef struct { Elemtype stack[MAXNUM]; int top; }SqStack; //栈的初始化 int InitStack(SqStack *s) { ...

    伸展树的基本实现和区间操作

    给定一个长度为N的序列,每个序列的长度是一个整数。要支持以下三种操作:  将[L,R]这个区间所有数加上V.  将[L,R]这个区间翻转,例如 1234变成 4321  求[L,R]区间的最大值 能力有限,实现可能有纰漏,也没有...

    C语言-数据结构课程设计+实验报告

    基于数据结构中顺序表和链表的实验设计,包括顺序表和链表的增删查改的实现及相关的应用案例。 编译器:C-Free 5.0 语言:C语言 主要内容: 1.顺序表 ...(2)双向链表的应用——实现长整数的相加

    《数据结构》(严蔚敏) 源代码

    设计一个100位以内的长整数加减运算的程序。 三、实验要求: 1,输入输出要求:每四位一组,组间用逗号分隔; 2,加和减分别用不同的程序实现 3,程序应考虑输入数据的符号 实验二 栈与队列的应用(4学时) 一、...

Global site tag (gtag.js) - Google Analytics