如何计算一个亿减去九千万九百九十九万九千九百九十九的精确结果?
- 内容介绍
- 文章标签
- 相关推荐
本文共计273个文字,预计阅读时间需要2分钟。
原创新颖,以独特的视角和创意,打破传统框架,展现作者独到的思维和艺术才华。
#include <cstdio>
#include <cstring>
#include <iostream>
#define maxn 107
using namespace std;
char a[maxn],b[maxn];//接受输入的字符串
int ta[maxn],tb[maxn];//倒序记录输入的字符串
int main()
{
int i,t;
int len1,len2;
scanf("%d",&t);
while (t--)
{
//注意要请0
memset(ta,0,sizeof(ta));
memset(tb,0,sizeof(tb));
scanf("%s%s",a,b);
len1 = strlen(a);
len2 = strlen(b);
int len = max(len1,len2);
//两个数组统一宽度,倒序记录在ta,tb中,多出的0补上
for (i = 0; i < len; ++i)
{
if (len1 - 1 >= 0)
{
ta[i] = a[len1 - 1] - '0';
len1--;
}
else ta[i] = 0;
if (len2 - 1 >= 0)
{
tb[i] = b[len2 - 1] - '0';
len2--;
}
else tb[i] = 0;
}
//模拟加法的过程
for (i = 0; i < len; ++i)
{
ta[i] = ta[i] - tb[i];
if (ta[i] < 0)
{
ta[i + 1] -= 1;
ta[i] += 10;
}
}
bool flag = false;
//false表示前边还没有出现1-9的数,true表示前边出现了1-9的数字
//可以处理多余的前导0
for (i = len; i >= 0; --i)
{
if (flag || ta[i])
{
flag = true;
printf("%d",ta[i]);
}
}
if (!flag) printf("0");
printf("\n");
}
return 0;
}
本文共计273个文字,预计阅读时间需要2分钟。
原创新颖,以独特的视角和创意,打破传统框架,展现作者独到的思维和艺术才华。
#include <cstdio>
#include <cstring>
#include <iostream>
#define maxn 107
using namespace std;
char a[maxn],b[maxn];//接受输入的字符串
int ta[maxn],tb[maxn];//倒序记录输入的字符串
int main()
{
int i,t;
int len1,len2;
scanf("%d",&t);
while (t--)
{
//注意要请0
memset(ta,0,sizeof(ta));
memset(tb,0,sizeof(tb));
scanf("%s%s",a,b);
len1 = strlen(a);
len2 = strlen(b);
int len = max(len1,len2);
//两个数组统一宽度,倒序记录在ta,tb中,多出的0补上
for (i = 0; i < len; ++i)
{
if (len1 - 1 >= 0)
{
ta[i] = a[len1 - 1] - '0';
len1--;
}
else ta[i] = 0;
if (len2 - 1 >= 0)
{
tb[i] = b[len2 - 1] - '0';
len2--;
}
else tb[i] = 0;
}
//模拟加法的过程
for (i = 0; i < len; ++i)
{
ta[i] = ta[i] - tb[i];
if (ta[i] < 0)
{
ta[i + 1] -= 1;
ta[i] += 10;
}
}
bool flag = false;
//false表示前边还没有出现1-9的数,true表示前边出现了1-9的数字
//可以处理多余的前导0
for (i = len; i >= 0; --i)
{
if (flag || ta[i])
{
flag = true;
printf("%d",ta[i]);
}
}
if (!flag) printf("0");
printf("\n");
}
return 0;
}

