[英]Check if a number is a palindrome: if not sum the number and the number with reversed digits and continue checking
我正在学习 C 并做第二个任务,即检查一个整数是否是回文。 如果是,我将返回号码; 如果不是,我将把数字和数字相反的数字相加并再次检查。
示例:编号:195
如果程序检查了 20 次仍然不是回文,我将返回 0。
我的程序是这样的:
int addRev(int n) {
int count;
int reversed = 0;
int remain;
int original;
original = n;
while (n != 0) {
remain = n % 10;
reversed = reversed * 10 + remain;
n /= 10;
}
if (original==reversed){
return original;
}
else{
original+=reversed;
}
return original;
}
到目前为止,我已经检查了该程序。 如果我用 191 测试它,它是一个回文并返回它。 如果我用 195 测试,它不是回文,函数返回 786。
但是下一步是什么? 我是否需要第二个 while() 才能继续使用 786?
关键是要求最多进行 20 次测试。
所以算法可能看起来像这样
for i = 1 up to 20
{
reversed = .......
if original == reversed
return original // it's a palindrome
original += reversed
}
return 0 // no palindrome after 20 iterations
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.