我制作了这段代码,它应该增加一个数字,直到获得这个输入数字的下一个回文数。
该程序将数字作为字符串“因为它可能是一个非常大的数字( 0 < 数字 < 1000000 )” ....
编码
int main ()
{
string number = "1243";
int position = number.length()-1;
do
{
if (number[position] == '9')
{
//cout << "hereee";
number[position] = '0';
int n1 = (int)number[position-1] - '0';
n1++;
number[position-1] = n1 + '0';
nextPalindrome[position-1];
cout << number <<"hereee2"<< endl; // only to determine if i get in "if"
}
else
{
int n1 = (int)number[position] - '0';
n1++;
number[position] = n1 + '0';
cout << number <<"hereee1" << endl; // only to determine if i get in "else"
}
} while (isPalindrome(number) == false);
}
它开始获取当前位置的数字并将其递增并再次将其作为字符返回
问题
cout << number <<"hereee1" << endl;
此行显示运行时的号码状态,就像这样:
12"6 hereee1
12"7 hereee1
12"8 hereee1
12"9 hereee1
12#0 hereee2
12#1 hereee1
虽然它必须是
1236 hereee1
1237 hereee1
1238 hereee1
1239 hereee1
1240 hereee2
1241 hereee1
我不知道错误在哪里..有人可以帮忙吗
注意: “isPalindrome”是一个以字符串为参数的函数,如果原始字符串等于其反向,则返回 true .. 否则返回 false