角谷步数

角谷步数

时间: 1ms        内存:128M

描述:

你听说过角谷猜想吗?
任意的正整数,比如 5, 我们从它开始,如下规则计算:
如果是偶数,则除以2,如果是奇数,则乘以3再加1.
如此循环,最终必会得到“1” !

比如 5 的处理过程是:
5
16
8
4
2
1

一个正整数经过多少步才能变成1, 称为角谷步数。
对于5而言,步数也是5
对于1,步数为0

输入:

从标准输入给定一个整数n(1<n<300)表示角谷步数

输出:

满足这个角谷步数的最小的正整数

示例输入:

3

示例输出:

7

提示:

参考答案(内存最优[1092]):

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int i=0,s,j;
    for(j=1;j<=1000;j++)
    {
        s=0;
        i=j;
        while(i!=1)
    {
        if(i%2==1)
        {
            i=i*3+1;
        s++;
        }
        if(i%2==0)
        {
            i=i/2;
        s++;
        }
    }
    if(n==s)
    {
        printf("%d",j);
        break;
    }
    }
    return 0;
}

参考答案(时间最优[0]):

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
cin>>n;
cout<<pow(2,n);
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注