21xrx.com
2024-12-22 18:52:40 Sunday
登录
文章检索 我的文章 写文章
教你用DEVC++实现角谷猜想
2023-07-06 20:22:29 深夜i     --     --
DEVC++ 角谷猜想 实现

角谷猜想是一种数学问题,通过对一个正整数的不断操作,最终可以得到1。这个问题的具体操作是:如果这个正整数是偶数,就将它除以2;如果是奇数,则将它乘以3加1。这个操作不断重复,直到得到1为止。这个问题看似简单,但是由于其数学性质的复杂性,至今没有找到一个证明它一定成立的办法。现在,我们可以使用DEVC++这个编程工具来实现角谷猜想的过程,以此探究这个问题的一些奥妙。

首先,我们需要定义一个函数,它能够接收一个正整数作为输入,并将对这个数的操作进行实现。这个函数可以定义如下:


void Jiaogu(int n)

{

  while (n != 1) {

    printf("%d ", n);

    if (n % 2 ==0)

      n = n / 2;

     else {

      n = 3 * n + 1;

    }

  }

  printf("1");

}

在这个函数里,我们用到了while循环和if-else条件判断语句。当n不等于1时,我们不断进行除以2或者乘以3加1的操作,直到得到1。每一次操作后,我们都打印出这个数。最后,我们再打印出1。这样,我们就完成了对于角谷猜想的一个简单实现。

接下来,我们可以在主函数中调用这个函数,并传递一个正整数作为参数来进行测试。


int main()

{

  int n;

  printf("请输入一个正整数:\n");

  scanf_s("%d", &n);

  printf("这个数经过角谷猜想的操作后变成1的过程为:\n");

  Jiaogu(n);

  return 0;

}

在主函数中,我们首先要获取用户输入的一个正整数。然后,我们调用Jiaogu函数,传递这个数作为参数。在函数执行完毕后,我们会得到这个数经过一系列操作变为1的过程。我们将这个过程打印出来,以供观察。

通过这个实现,我们可以看到,角谷猜想的过程是如此的简单而又奇妙。在数字的世界中,这个小小的问题,却隐藏着深远的数学思想与哲学意义。它引领我们探究整数性质的本质,以及数学世界的无限可能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复