递推法
#include <stdio.h>
int fishing_iterative(int days)
{
int total = 0;
int fish = 0;
for (int i = 1; i <= days; ++i)
{
fish = 2 * fish + i;
total += fish;
}
return total;
}
int main()
{
int days = 5;
int total_fish = fishing_iterative(days);
printf("Total fish caught in %d days (iterative): %d\n", days, total_fish);
return 0;
}
递归法
#include <stdio.h>
int fishing_recursive(int days)
{
if (days == 0)
{
return 0;
}
else
{
return 2 * fishing_recursive(days - 1) + days;
}
}
int main()
{
int days = 5;
int total_fish = fishing_recursive(days);
printf("Total fish caught in %d days (recursive): %d\n", days, total_fish);
return 0;
}