我需要用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;
}
任何帮助都将不胜感激。
答案 0 :(得分:3)
Your equation doesn't have any integer roots.
它简化为:3*(x+1)*(x-1)*x = -1
。除-1
之间的整数为1
和-1
,因此您的等式没有整数解。
答案 1 :(得分:0)
三个错误:
如果要包含0,请使用x&lt; = 0而不是x&lt; 0
你的功能错了,pow(x,2)代替pow(x,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;
}
并检查提供的等式是否正确