信息学奥赛一本通T1086:while与do-while语句 角谷猜想

【题目描述】角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。程序要求输入一个整数,将经过处理得到1的过程输出来。【输入】一个正整数N(N ≤ 2,000,000)。【输出】从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End"。如果

信息学奥赛一本通T1086:角谷猜想

【题目描述】

角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。程序要求输入一个整数,将经过处理得到1的过程输出来。

【输入】

一个正整数N(N ≤ 2,000,000)。

【输出】

从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End"。如果输入为1,直接输出"End"。

【输入样例】

5

【输出样例】

5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
End

【源程序】

#include<iostream>
using namespace std;
int main()
{
    long int n,a;

    cin>>n;
    while(n!=1)
    {
        if(n%2)//n为奇数
        {
            cout<<n<<"*3+1="<<n*3+1<<endl;
            n=n*3+1;
        }
        else//n为偶数
        {
            cout<<n<<"/2="<<n/2<<endl;
            n/=2;
        }
    }
    cout<<"End"<<endl;
    return 0;
}

 

信息学奥赛一本通T1086:while与do-while语句 角谷猜想 归属于 while与do-while语句,更多同类题解源程序见:while与do-while语句 和 角谷猜想

0 条评论

请先 登录 后评论
不写代码的码农
轩爸

0 篇文章

作家榜 »

  1. admin 2 文章
  2. 张芳 0 文章
  3. hanna 0 文章
  4. Jason 0 文章
  5. lixiaioqian 0 文章
  6. GeraldWrora 0 文章
  7. 董伟 0 文章
  8. 信奥达人 0 文章