标签:
咳咳,我于心不忍,so,我又来写了。。。。。。
源码:
#include<stdio.h>
#include<string.h>
char s1[1000];
int a[1000]={0},b[1000]={0},c[1000]={0};
int main()
{
int i,j,z,l1,l2,l,o;
freopen("hp-.in","r",stdin);
freopen("hp-.out","w",stdout);
scanf("%s",s1);
l1=strlen(s1);
for(i=0;i<=l1-1;i++) //把s1(被减数)转换成数字,并倒序存入a数组
a[l1-1-i]=s1[i]-‘0‘;
scanf("%s",s1);
l2=strlen(s1);
for(i=0;i<=l2-1;i++) //把s1(减数)转换成数字,并倒序存入b数组
b[l2-1-i]=s1[i]-‘0‘;
if(l1==l2){
for(j=l1;j>=0;j--)
{
if(a[j]>b[j]) //a大
{
o=0;
break;
}
if(b[j]>a[j]) //b大
{
o=1;
break;
}
}
}
if(l1>l2||o==0) //a大时
{
l=l1;
for(i=0;i<l;i++)
{
if(a[i]<b[i])
{
a[i]=a[i]+10;
a[i+1]-=1;
}
c[i]=a[i]-b[i];
}
while(l>1&&c[l-1]==0) l--; //舍去高位中无用的0
for(i=l-1;i>=0;i--) //输出
{
printf("%d",c[i]);
}
}
else
{
printf("-");
l=l2;
for(i=0;i<l;i++)
{
if(a[i]>b[i])
{
b[i]=b[i]+10;
b[i+1]-=1;
}
c[i]=b[i]-a[i];
}
while(l>1&&c[l-1]==0) l--; //舍去高位中无用的0
for(i=l-1;i>=0;i--) //输出
{
printf("%d",c[i]);
}
}
return 0;
}
来自小组:
成都七中高新校区OI2015信息竞赛 冰杖
http://www.cnblogs.com/chentao1c/ ——冰杖
标签:
原文地址:http://www.cnblogs.com/wuweihehe/p/5648077.html