ACM常用算法(5)
发布时间:2021-06-06
发布时间:2021-06-06
ACM常考算法
if(j<0) y='0'; else y=b[j]; z=x-'0'+y-'0'; if(up) z+=1;
if(z>9) {up=1;z%=10;} else up=0; c[k++]=z+'0'; i--;j--; }
if(up) c[k++]='1'; i=0;
c[k]='\0';
for(k-=1;k>=0;k--) back[i++]=c[k]; back[i]='\0'; }
5.精度计算——减法
语法:sub(char s1[],char s2[],char t[]); 参数:
s1[]: 被减数,用字符串表示,位数不限 s2[]: 减数,用字符串表示,位数不限 t[]: 结果,用字符串表示 返回
null 值: 注意: 源程序:
默认s1>=s2,程序未处理负数情况 需要 string.h
void sub(char s1[],char s2[],char t[]) {
int i,l2,l1,k;
l2=strlen(s2);l1=strlen(s1); t[l1]='\0';l1--;
for (i=l2-1;i>=0;i--,l1--) {
if (s1[l1]-s2[i]>=0)
t[l1]=s1[l1]-s2[i]+'0'; else {
t[l1]=10+s1[l1]-s2[i]+'0'; s1[l1-1]=s1[l1-1]-1; } } k=l1;
while(s1[k]<0) {s1[k]+=10;s1[k-1]-=1;k--;} while(l1>=0) {t[l1]=s1[l1];l1--;} loop:
if (t[0]=='0') {