Advertisemen
I required this to help understand a pattern in a Project Euler problem, may be useful in the future (it didn't solve the Euler problem though :/)
#include <iostream>
#include <string>
using namespace std;
int main()
{
//find a function for which
// f(1) = 2
// f(2) = 6
// f(3) = 20
int lVal[] = { 1, 2, 3 };
int rVal[] = { 2, 6, 20 };
int arrSize = 3;
//an + b
int COEFFICIENT_MAX = 50;
int correct = 0;
for (int a=-COEFFICIENT_MAX;a<COEFFICIENT_MAX+1;a++)
{
for (int b=-COEFFICIENT_MAX;b<COEFFICIENT_MAX+1;b++)
{
correct = 0;
for (int v=0;v<arrSize;v++)
{
if (a*lVal[v] + b == rVal[v]) correct++;
else break;
}
if (correct > 2)
cout << a << "n + " << b << endl;
}
}
//cn^2 + an + b
for (int a=-COEFFICIENT_MAX;a<COEFFICIENT_MAX+1;a++)
{
for (int b=-COEFFICIENT_MAX;b<COEFFICIENT_MAX+1;b++)
{
for (int c=-COEFFICIENT_MAX;c<COEFFICIENT_MAX+1;c++)
{
correct = 0;
for (int v=0;v<arrSize;v++)
{
if (c*lVal[v]*lVal[v] + a*lVal[v] + b == rVal[v]) correct++;
else break;
}
if (correct > 2)
cout << c << "n^2" << " + " << a << "n + " << b << endl;
}
}
}
cin.get();
return 0;
}
Advertisemen
Tidak ada komentar:
Posting Komentar