如何创建接收int参数n的ac代码并返回此数学方程的值
f(n)= 3*f(n -1)+ 4,其中 f(0)= 1
每次程序接收到n时,程序应该从0到n开始,这意味着代码(for循环).
这里的问题是我无法将其翻译成代码,我被困在f(n-1)部分,我怎么能在c中使这个工作?
注意.这个代码应该只在基本的C中构建(不再是循环,没有函数,在void main等).
它被称为递归,你有一个基本情况f(0) == 1,所以只需检查if (n == 0)并返回1或递归
int f(int n)
{
if (n == 0)
return 1;
return 3 * f(n - 1) + 4;
}
Run Code Online (Sandbox Code Playgroud)
迭代解决方案也很简单,例如if f(5)
#include <stdio.h>
int
main(void)
{
int f;
int n;
f = 1;
for (n = 1 ; n <= 5 ; ++n)
f = 3 * f + 4;
printf("%d\n", f);
return 0;
}
Run Code Online (Sandbox Code Playgroud)