【发布时间】:2020-02-22 00:57:44
【问题描述】:
我知道答案可能很简单,但我几乎已经筋疲力尽地尝试了我在 c++ 中所知道的一切,这并不多。第一个函数有效,据我所知,我只是无法终止循环。
#include <iostream>
#include <cstdlib>
using namespace std;
unsigned int reverseInt(unsigned int num)
{
unsigned int rem, reverse;
while(num > 0)
{
rem = num % 10;
reverse = reverse * 10 + rem;
num /= 10;
}
return reverse;
}
unsigned int generateSequence(unsigned int num, ostream& out)
{
unsigned int k = 0;
while(num != 1)
{
num = num + 4;
num = reverseInt(num);
k++;
out << ", " << num;
}
out << endl;
return k;
}
【问题讨论】:
-
请将其设为minimal reproducible example。没有什么遗漏,但
main会很好,你必须告诉我们你使用了什么输入 -
还解释了代码应该做什么。为什么你期望循环终止?如何将
4添加到num最终使其等于1?如果num以5开头怎么办? -
@idclev463035818 这不只是加 4,它也是倒数。没有
reverse的bug,当num开始为5时,52步后会达到1。 -
阅读this article 了解调试代码的技巧。
标签: c++ while-loop