影者东升 发表于 2021-7-10 15:14:25

厦大C语言上机 1483 归一法则

  1483.归一法则


时间限制: 1000 MS          内存限制: 65536 K
        
提交数: 433 (2 users)          通过数: 302 (295 users)


问题描述
一个偶然的机会,街边算命的老人跟小明打赌,只要小明给他一个正整数n,他按照下面的规则,总是能在有限的次数内把这个给定的正整数n变成1。规则很简单:如果n是奇数,则将n变为3n+1,否则变为n的一半。小明一开始不相信,但是试了很多次,老人都做到了,例如3->10->5->16->8->4->2->1。于是小明输了10块钱。现在小明学会了C语言,他要让计算机帮他检验一下老人说的到底是不是真的。


输入格式
    输入n,n<=109


输出格式
    输出变换的次数。


样例输入
3


样例输出
7


来源
  xmu
#include <stdio.h>

int main()
{
    int n;
    int times;

    scanf("%d", &n);
    times = 0;
    while (n > 1)
    {
      if (n % 2 == 1)
            n = 3 * n + 1;
      else
            n /= 2;
      times++;
    }
    printf("%d\n", times);

    return 0;
}




  
文档来源:51CTO技术博客https://blog.51cto.com/liulizhi1996/3032735
页: [1]
查看完整版本: 厦大C语言上机 1483 归一法则