我有这个问题,我不明白这个程序应该做什么。
问题是:
显示1到1000之间的数对,其平方和是任意数的三次方,且其三次方的和是某数的平方。不要使用数学函数,例如……
谁能解释一下我应该做什么,以及循环如何准确地取代pow和sqrt函数?
显示1到1000之间的数对,其平方和是任意数的三次方,且其三次方的和是某数的平方。不要使用数学函数,例如……
让我们试一试。
显示1到1000之间的数字对
for(int i = 0; i <= 1000; i++)
for(int j = i; j <= 1000; j++) // starting at i to not repeat pairs twice
其平方和
for(int i = 0; i <= 1000; i++)
for(int j = i; j <= 1000; j++) // starting at i to not repeat pairs twice
{
int sumSquare = i * i + j * j;
是任意数
的三次方
for(int i = 0; i <= 1000; i++)
for(int j = i; j <= 1000; j++) // starting at i to not repeat pairs twice
{
int sumSquare = i * i + j * j;
bool found = false;
for(int k = 1; k * k * k <= sumSquare; k++) // inefficient
{
if (k * k * k == sumSquare)
{
found = true;
}
}
if (found)
{
cout << i << " " << j << " " << k << endl;
}
}
等等…您将需要添加第三个条件,您可能需要处理溢出,可能使用size_t
,并使其更有效。
但这应该给你正确的想法…