NingMu511 2019-01-02 11:45 采纳率: 0%
浏览 860

C语言小题目 关于3N+1问题增加一点东西

题目描述:
问题如下:
(1)输入一个正整数n;
(2)如果n=1则结束;
(3)如果n是奇数,则n变为3n+1,否则n变为n/2;
(4)转入第(2)步。

输入样式:
1 2 3

输出样式:
0
1
7

  • 写回答

1条回答 默认 最新

  • qq_44366623 2019-01-02 06:09
    关注

    #include
    int main()
    {
    int n;
    scanf("%d",&n);
    printf("%-4d",n);
    while(n!=1)
    {
    if(n%2!=0) n=3*n+1;
    else n=n/2;
    printf("%-4d",n);
    }
    printf("\n");
    }

    链长的我觉得有问题你可以试试自己改改。

    #include
    main()
    {
    int q1,q2,c,d,j=0,i=0,temp;
    int max=0;
    scanf("%d %d",&q1,&q2);
    d=q2-q1;
    for(c=0;c<d;c++)
    {
    temp = temp + c;
    while(temp!=0)
    {
    j++;
    if(temp==1)
    {
    break;
    }
    if(temp%2==1)
    temp=3*q1+1;
    else
    temp=temp/2;
    }
    if (max < j)
    max = j;
    j = 0;
    }
    printf("链长为%d",max);
    }

    评论

报告相同问题?