落红护花 发表于 2020-11-1 20:53

有趣的Collatz数列

什么是Collatz数列?


首先输入一个数


如果这个数为奇数,则将这个数乘3后加1。
如果这个数为偶数,则将这个数除以2。
经过有限次循环后,任何一个正整数最终都会变成1。



C++源码
#include<iostream>

int main(){
    int in2;
    std::cout<<"Please enter a number."<<std::endl;
    std::cin>>in2;
    while (in2!=1)
    {
      if (in2%2==0)
    {
      in2=in2/2;
      std::cout<<in2<<std::endl;
    }
      else if (in2%2!=0)
    {
      in2=in2*3+1;
      std::cout<<in2<<std::endl;
    }
    }
    system("pause");
    return 0;
}


Air_Pot 发表于 2020-11-1 22:48

顺手用刚学的C写了一个   但是我这个sublime text 不能用scanf函数,所以就随便输入了一个数
#include<stdio.h>

int Collatz(int);
int main()
{
      /* code */
      int c=985;
      Collatz(c);
      return 0;
}

int Collatz(int c)
{
      if(c%2==0){
                c/=2;
      }else{
                c=c*3+1;
      }
      printf("%d \n ",c );
      if(c!=1){
                Collatz(c);
      }
}

2956
1478
739
2218
1109
3328
1664
832
416
208
104
52
26
13
40
20
10
5
16
8
4
2
1

leeqng 发表于 2020-11-3 17:31

本帖最后由 leeqng 于 2020-11-3 17:34 编辑

python 代码

def collatz(number):
    if number % 2 == 0 :
      return number / 2
    if number % 2 == 1 :
      return number * 3 + 1
try:
   number = int(input("请输入一个非零整数 >>"))
   while number != 1:
      number = collatz(number)
      print(number)
except:
    print("input ERROR,exit!" + number)


cherish佘 发表于 2020-11-17 20:23

大佬你那个网页星号密码查看的使用方法:
1.新建一个收藏,网址栏输入下面的字符......................................2.保存收藏,需要时点击即可,这段内容没看懂,

我复制字符到网址, 在有密码的网址打开,谷歌就打不开,火狐打开是空白没用啊,怎么弄?

那个帖子发出来就被淹没了,在这里问问,见谅

落红护花 发表于 2020-11-17 20:43

cherish佘 发表于 2020-11-17 20:23
大佬你那个网页星号密码查看的使用方法:
1.新建一个收藏,网址栏输入下面的字符........................ ...

页: [1]
查看完整版本: 有趣的Collatz数列