所以我有这个功能来检查一个数字是否是一个快乐的数字。它返回true或false。
if letter in punctuations
它按预期工作,当X是幸福数字时返回true。
我要做的是打印前888个满意的数字。
我尝试设置一个while循环,其中有一个递增的整数b
bool is_happy(int x) //Let the function determine if the number is happy
{
int result;
while (x != 1) //If x == 1, it is a happy number
{
result = 0;
while (x) //Until every digit has been summed
{
result += (x % 10) * (x % 10); //Square digit and add it to total
x /= 10;
}
x = result;
if (x == 4) //if x is 4, its a sad number
return false;
}
return true;
}
但是,我不知道如何包含和增加X,每当我尝试包含并增加x时,它只会打印出第一个快乐数字888次。
我的问题是尝试增加x,每当它达到一个快乐的数字时,它输出那个快乐的数字,然后增加b。我只能使用iostream而不能使用其他库。
编辑:道歉不明白!
我正在尝试打印出前888个快乐号码,我有检查号码是否满意的功能。我正在尝试创建一个循环,打印出使函数返回True的前888个数字。
非常感谢!
答案 0 :(得分:1)
尝试遵循这一逻辑。
首先,为计数器创建一个变量。我们说int counter = 0;
。
然后,做:
while ( counter < 888 )
{
if ( number == /*happy condition*/)
{
//do somehting
counter++;
}
else
{
// :(
}
}
答案 1 :(得分:0)
您需要将b传递给您的函数,并保留一些幸福数字:
int b = 0;
int count = 0;
while( count < 888 ) {
if ( is_happy( b ) ) {
// do something
count++;
}
b++;
}
答案 2 :(得分:0)
您需要分别增加两个数字:
int b = 0;
for (int x = 1; b < 888; x++) {
if (is_happy(x)) {
// print
b++;
}
}