11-10-2011, 09:10
|
|
|
|
חבר מתאריך: 05.05.02
הודעות: 6,840
|
|
אם נרצה שזה יעבוד בזמנים יותר סבירים אז אפשר להשתמש בתכנון דינמי.
קוד:
int f(int a, int b, int c, int sum)
{
int[] arr = new int[sum + 1];
arr[0] = 1;
for (int i = 1; i <= sum; i++)
{
arr[i] = 0;
if (i >= a)
arr[i] += arr[i - a];
if (i >= b)
arr[i] += arr[i - b];
if (i >= c)
arr[i] += arr[i - c];
}
return arr[sum];
}
המערך מאכסן במקום ה-i את f(a, b, c, i).
|