我正在尝试编写代码来计算1到100万之间的正确数字。然而,最终结果是我的输出窗口保持空白并继续运行,否则我得到0的输出,这是不正确的。有人有什么建议吗?这是我正在使用的代码:
从主要功能:
for (x = 2; x < 10; x++)
{
if(is_happy(x) == 1)
happy_number++;
}
cout << "There are " << happy_number << " happy prime numbers between 1 and 1 million" << endl;
注意:happy_number以值0开始;
然后是计算数字是否满意的函数:
int is_happy(int x)
{
int y;
int ans = 0;
while (x > 0)
{
y = x%10;
ans += pow(y, 2.0);
x = x/10;
ans += pow(x, 2.0);
}
return ans;
}
有什么建议吗?
答案 0 :(得分:1)
我使用的是维基百科。 Happy number
名为isHappy的函数计算参数是否满意。如果参数是负整数,我不确定它是否正常。
你问:
如何制作一个程序,找出1之间的幸福数字 和100万
函数int happyNumbersBetween1_1000000()返回1到1 000 000之间的幸福数字。
0
答案 1 :(得分:1)
在计算幸福数字时,你的逻辑有点偏差。这是一个持续到达include_once $path;
或无限循环的循环。幸福数字达到1
,而不满意的数字达到1
并永远循环。
4
您应该像这样使用它:
bool is_happy(int x) //Let the function determine if the number is happy
{
if (x <= 0) //Discrimination! Only positive numbers are allowed to experience joy
return false;
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;
}
编辑:你可以看到它有效here。