您的位置:首页 > 职场人生

大数相加 面试题

2016-06-14 01:22 267 查看
最近在准备面试,所以做了一些公司的面试题,看到一个大数相加的题目,感觉挺有意思,就实现一下:

不说废话,直接看代码:

#include <iostream>

#define N 20

using namespace std;

void AddBig(char a[],char b[],char c[]);

void main()

{
char a
= "90999";
char b
= "9999999";
char c[N + 1];
AddBig(a, b, c);

}

void AddBig(char a[], char b[], char c[])

{
int s1
= {0};
int s2
= {0};
int s3
= {0};

int len1 = strlen(a);
int len2 = strlen(b);

for (int i = 0; i < len1;i++)
{
s1[N - len1+i] = a[i]-'0';
int t = 0;
}

for (int i = 0; i < len2; i++)
{
s2[N- len2+i] = b[i] - '0';
}

int Temp[N + 1] = { 0 };
for (int i = 0; i < N;i++)
{
int temp = s1[i] + s2[i];
if (temp>9)
{
Temp[i] = 1;
s3[i] = temp - 10;
}
else
{
Temp[i] = 0;
s3[i] = temp;
}
}

for (int i = N - 1; i >= 0;i--)
{
int tValue = s3[i] + Temp[i + 1];
if (tValue > 9)
{
s3[i] = tValue - 10;
Temp[i] += 1;
}
else
s3[i] = tValue;
}

int index = 0;
for (int i = 0; i < N;i++)
{
if (s3[i]!=0)
{
break;
}
index++;
}

for (int i = index; i < N;i++)
{
c[i] = s3[i] + '0';
cout << c[i] << "   ";
}

}

虽说题上要求使用纯c来实现,不过为了方便,在输出的时候采用了iostream
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  大数相加 c 面试题