求一个很长的正整数加上1的和

//求一个很长的正整数加上1的和

void AddLongNum(char* pCNum)

{
int charNumSize = strlen(pCNum);
bool b = TRUE;
for (int i = 0; i < charNumSize; i++)
{
int nNum = pCNum[i] - '0';
if (nNum != 9)
{
b = false;
break;
}
}


if (b)
{
memset(pCNum, 0, charNumSize + 2);
pCNum[0] = '1';
for (int i = 1; i <= charNumSize; i++)
{
pCNum[i] = '0';
}
}
else
{
for (int i = charNumSize - 1; i >= 0; i--)
{
int nRes = (pCNum[i] - '0') + 1;
if (nRes >= 10)
{
pCNum[i] = nRes % 10 + '0';
}
else
{
pCNum[i] = nRes + '0';
break;
}

}
}

}


//运行结果

char arrNum = "99999";

AddLongNum(arrNum , 1);//100000

char arrNum_1 = "199999";

AddLongNum(arrNum_1, 1);//20000


猜你喜欢

转载自blog.csdn.net/u012839837/article/details/53706619