如何在ac程序中表达这种数学关系

aaa*_*aaa 1 c math

如何创建接收int参数n的ac代码并返回此数学方程的值

f(n)= 3*f(n -1)+ 4,其中 f(0)= 1

每次程序接收到n时,程序应该从0到n开始,这意味着代码(for循环).

这里的问题是我无法将其翻译成代码,我被困在f(n-1)部分,我怎么能在c中使这个工作?

注意.这个代码应该只在基本的C中构建(不再是循环,没有函数,在void main等).

Iha*_*imi 5

它被称为递归,你有一个基本情况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)