如何打印满足等式的所有整数

How to print all integers which satisfy an equation?

本文关键字:整数 满足 何打印 打印      更新时间:2023-10-16

我需要用C++编写一个程序,它打印-50和0之间的所有数字,这些数字满足以下等式:18^3-18x^2+6=0

我的if语句似乎没有返回任何结果,它应该:(

我认为我的思路是正确的。。。。

for (int x = -50; x < 0; x++) {
    int y = pow(x, 3) - 18 * pow(x,3) + 6;
    if(y == 0)
        cout << y << endl;
}

如有任何帮助,我们将不胜感激。

您的方程没有任何整数根。

它简化为:3*(x+1)*(x-1)*x = -1。除以-1的整数是1-1,所以方程没有整数解。

三个错误:

  1. 如果要包含0,请使用x<0而不是x<0

  2. 你的函数是错误的,pow(x,2)而不是pow(x,3)

  3. 你应该输出x而不是y,否则你只会输出零

    for(int x=-50;x<=0;x++){
        int y=pow(x,3)-18*pow(x,2)+6;
        if(y==0)
          cout << x << endl;
    }
    

有问题的方程式和代码中的方程式不同:

我想应该是这个

for (int x = -50; x < 0; x++) {
   int y = pow(x, 3) - 18 * pow(x,2) + 6;
   if(y == 0)
       cout << y << endl; 

}

同时检查提供的方程式是否正确。

您应该为变量y使用double类型,因为方程没有整数根。但是,永远不要检查双变量等于零。这可能会对你有所帮助。