c语言利用fun求最小值,c语言:请编写函数fun(),他的功能是:求f(0)到f(50)的最小值,已知:f(0)=f(1)=1,f(2)=0,f...

#include 

#include 

int f(int n)

{

if (n == 0 || n == 1)

{

return 1;

}

if (n == 2)

{

return 0;

}

return f(n-1)-2*f(n-2)-f(n-3);

}

int fun()

{

int i, v;

int min = f(0);

for (i = 0; i<=50; ++i)

{

v = f(i);

if (v 

{

min = v;

}

}

return min;

}

int main()

{

printf("%d", fun());

}

再问: 亲问可以用一个函数做出来吗 你定义了两个函数啊

再答: #include 

int fun()

{

\x09int i, f[51], min; // f[51]存储f0-f50共51个值

\x09f[0] = 1;

\x09f[1] = 1;

\x09f[2] = 0;  // 初始化 f[0],f[1],f[2]

\x09min = 0; // min取当前f[0],f[1],f[2]的最小值

\x09

\x09for (i=3; i<=50; ++i)

\x09{

\x09\x09f[i] = f[i-1] - 2*f[i-2] - f[i-3]; // 计算f[i]

\x09\x09if (f[i] 

\x09\x09{

\x09\x09\x09min = f[i]; // 当前值如果小于当前最小值,当前值作为最小值。

\x09\x09}

\x09}

\x09return min;

}

int main()

{

\x09printf("%d", fun());

\x09

\x09return 0;

}

再问: f[2]不是数组了吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值