注意num1, num2, newnum中的数位都是倒着写的。比如1234要写成4321,方便对其数位。
【代码】
#include <iostream>
using namespace std;
int main(void)
{
char *num1 = "982799999";
char *num2 = "4563";
char newnum[20];
char *pnum = newnum;
bool carry = false;
memset(newnum, '0', sizeof(newnum));
memcpy(newnum, num1, strlen(num1));
while (*num2 != '\0')
{
if (carry)
{
(*pnum)++;
carry = false;
}
*pnum += *num2 - '0';
if (*pnum > '9')
{
*pnum -= 10;
carry = true;
}
num2++;
pnum++;
}
while (carry)
{
(*pnum)++;
if (*pnum > '9')
*pnum -= 10;
else
carry = false;
pnum++;
}
*pnum = '\0';
cout << newnum << endl;
system("pause");
return 0;
}
【运行结果】
3490000001