C语言:要完整的源代码;(用C语言编程),请将源代码发送到我的邮箱346606491@qq.com,好的话我可以加分
长整数的处理。功能描述:假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:`m=a[k]×10k-1+a[k-1]×10k-2...
长整数的处理。
功能描述:
假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:`
m=a[k]×10k-1+a[k-1]×10k-2+….+a[2]×10+a[1]
其中a[0]保存该长整数的位数。求:
(1) 长整数乘普通整数;
(2) 长整数除普通整数。
谢谢!! 展开
功能描述:
假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:`
m=a[k]×10k-1+a[k-1]×10k-2+….+a[2]×10+a[1]
其中a[0]保存该长整数的位数。求:
(1) 长整数乘普通整数;
(2) 长整数除普通整数。
谢谢!! 展开
5个回答
展开全部
#include<iostream.h>
void chen(int num[],int n,int shotnum,int *jieguo,int &jlength)//乘
{
long *temp=new long[n];
int temp1[100];
int j=0;
for(int i=0;i<n;i++)
{
temp[i]=num[i]*shotnum;
}
for(i=n-1;i>=0;i--)
{
temp1[j++]=temp[i]%10;
if(i!=0) temp[i-1]+=temp[i]/10;
else
{
do
{
temp[0]/=10;
if(temp[0]==0) break;
temp1[j++]=temp[0]%10;
}while(1);
}
}
for(i=0;i<j;i++) jieguo[i]=temp1[j-i-1];
jlength=j;
delete []temp;
}
void chu(int num[],int n,int shotnum,int *jieguo,int &jlength)//除
{
int sum=0,temp;
int j=0;
for(int i=0;i<n;i++)
{
sum=sum*10+num[i];
temp=sum/shotnum;
if(j||temp)
{
jieguo[j++]=temp;
sum=sum%shotnum;
}
}
jlength=j;
}
void main()
{
int num[10]={1,2,3,4,5,6,7,8,9,8};
int jieguo[100];
int shotnum=16;
int nlength;
chen(num,10,shotnum,jieguo,nlength);
for(int i=0;i<nlength;i++) cout<<jieguo[i];
chu(num,10,shotnum,jieguo,nlength);
for(i=0;i<nlength;i++) cout<<jieguo[i];
}
//写程序不容易啊,希望对你有帮助
void chen(int num[],int n,int shotnum,int *jieguo,int &jlength)//乘
{
long *temp=new long[n];
int temp1[100];
int j=0;
for(int i=0;i<n;i++)
{
temp[i]=num[i]*shotnum;
}
for(i=n-1;i>=0;i--)
{
temp1[j++]=temp[i]%10;
if(i!=0) temp[i-1]+=temp[i]/10;
else
{
do
{
temp[0]/=10;
if(temp[0]==0) break;
temp1[j++]=temp[0]%10;
}while(1);
}
}
for(i=0;i<j;i++) jieguo[i]=temp1[j-i-1];
jlength=j;
delete []temp;
}
void chu(int num[],int n,int shotnum,int *jieguo,int &jlength)//除
{
int sum=0,temp;
int j=0;
for(int i=0;i<n;i++)
{
sum=sum*10+num[i];
temp=sum/shotnum;
if(j||temp)
{
jieguo[j++]=temp;
sum=sum%shotnum;
}
}
jlength=j;
}
void main()
{
int num[10]={1,2,3,4,5,6,7,8,9,8};
int jieguo[100];
int shotnum=16;
int nlength;
chen(num,10,shotnum,jieguo,nlength);
for(int i=0;i<nlength;i++) cout<<jieguo[i];
chu(num,10,shotnum,jieguo,nlength);
for(i=0;i<nlength;i++) cout<<jieguo[i];
}
//写程序不容易啊,希望对你有帮助
展开全部
这个题用C语言麻烦,JAVE会简单的多。。。。
我编过a-b的题,就是整数的高精度类型的。。这个比那个麻烦,呵呵,不想做了啊。
我编过a-b的题,就是整数的高精度类型的。。这个比那个麻烦,呵呵,不想做了啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没看明白。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看的一般般明白吗,试着给你写写吧
想知道你是想先把M求出来再乘还是利用数组一位位的乘,还有乘数是怎么给的
想知道你是想先把M求出来再乘还是利用数组一位位的乘,还有乘数是怎么给的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个比较复杂!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询