手机版

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文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)