ACM常用算法(3)

发布时间:2021-06-06

ACM常考算法

源程序:

void mult(char c[],char t[],int m) {

int i,l,k,flag,add=0; char s[100]; l=strlen(c);

for (i=0;i<l;i++)

s[l-i-1]=c[i]-'0';

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

k=s[i]*m+add;

if (k>=10) {s[i]=k%10;add=k/10;flag=1;}else {s[i]=k;flag=0;add=0;} }

if (flag) {l=i+1;s[i]=add;}else l=i; for (i=0;i<l;i++)

t[l-1-i]=s[i]+'0'; t[l]='\0'; }

3.精度计算——乘法(大数乘大数)

语法:mult(char a[],char b[],char s[]); 参数:

a[]: 被乘数,用字符串表示,位数不限 b[]: 乘数,用字符串表示,位数不限 t[]: 结果,用字符串表示 返回

null 值: 注意: 源程序:

空间复杂度为 o(n^2) 需要 string.h

void mult(char a[],char b[],char s[]) {

int i,j,k=0,alen,blen,sum=0,res[65][65]={0},flag=0; char result[65];

alen=strlen(a);blen=strlen(b);

for (i=0;i<alen;i++)

for (j=0;j<blen;j++) res[i][j]=(a[i]-'0')*(b[j]-'0'); for (i=alen-1;i>=0;i--) {

for (j=blen-1;j>=0;j--) sum=sum+res[i+blen-j-1][j]; result[k]=sum%10; k=k+1;

ACM常用算法(3).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219