如何打印满足方程的所有整数?

时间:2014-11-05 10:33:03

标签: c++

我需要用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;
}

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:3)

Your equation doesn't have any integer roots.

它简化为:3*(x+1)*(x-1)*x = -1。除-1之间的整数为1-1,因此您的等式没有整数解。

答案 1 :(得分:0)

三个错误:

  1. 如果要包含0,请使用x&lt; = 0而不是x&lt; 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;
    }
    

答案 2 :(得分:0)

您应该使用变量double的{​​{1}}类型,因为公式没有整数根。但是从不检查双变量等于零。这可能是help you.

答案 3 :(得分:0)

您的问题和代码中的等式是不同的:

我认为应该是这个

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

}

并检查提供的等式是否正确