为了账号安全,请及时绑定邮箱和手机立即绑定

关于角谷猜想,提交以后超时了,能否简化一下?谢谢~

关于角谷猜想,提交以后超时了,能否简化一下?谢谢~

C++
ZackAqua 2017-02-22 19:54:38
描述 所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。  程序要求输入一个整数,将经过处理得到1的过程输出来。 输入 一个正整数N(N <= 2,000,000) 输出 从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End"。如果输入为1,直接输出"End"。#include<iostream> using namespace std;int main(){    int N,a;    scanf("%d",&N);    if(N==1)    printf("END");    else{        if(N%2==1){          while(a!=1){          a=(N*3+1)/2;           }            }                          else if(N%2==0){       while(a!=1){       a=N/2 ;           }             }       printf("END");       }     return 0;}
查看完整描述

3 回答

已采纳
?
慢l慢

TA贡献22条经验 获得超3个赞

#include<stdio.h>

using namespace std;

int main(){

    int N;

    scanf("%d",&N);

    if(N==1)

    printf("END");

    else{

        while(N!=1){

            if(N%2==1){

                N=N*3+1;

                printf("N=%d",N);

            }                   

            else{

                N=N/2;

                printf("N=%d",N);

            }

        }

        printf("END");

    }

    return 0;

    }

不懂你定义一个a做什么?还有scanf和printf是被定义在stdio.h里的。

查看完整回答
1 反对 回复 2017-02-23
?
慕前端6537832

TA贡献1条经验 获得超0个赞

我觉得把N设置为long long数据类型更妥当

查看完整回答
反对 回复 2018-01-22
  • 3 回答
  • 0 关注
  • 2071 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信