gpt4 book ai didi

c - 递归——数学公式,写程序

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:23 26 4
gpt4 key购买 nike

我需要在 C 中实现这个数学公式:

enter image description here

我写了一段代码:

#include <stdio.h>

int c(int n, int k)
{
if(k == 0)
return n;
if(c(n,k-1) % 2 == 0)
return c(n,k-1)/2;
if(c(n,k-1) % 2 != 0)
return c(n,k-1) * 3 + 1;
}

int main()
{

printf("%d", c(3,8));

return 0;
}

但我想知道这是否就是全部?它能正常工作吗?我必须承认我在纸上计算时遇到了一些麻烦......

最佳答案

根据我的计算,n=3, k=8 的正确答案应该是 4,所以你的例子应该给你这个答案。程序本身看起来是正确的。

更新:

这是我在纸上的做法:

我们从 c(0) 开始 - 因为在这种情况下该值在任何情况下都是已知的:

c(0)=n=3

再往上走,在每一步选择基于c(k-1)均匀度的计算方法:

c(1)=c(0)*3+1=10
c(2)=c(1)/2=5
c(3)=c(2)*3+1=16
c(4)=c(3)/2=8
c(5)=c(4)/2=4
c(6)=c(5)/2=2
c(7)=c(6)/2=1
c(8)=c(7)*3+1=4

关于c - 递归——数学公式,写程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27214319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com