黑马程序员技术交流社区

标题: 不知道为啥不能输入。。。。。还是配置问题。。。 [打印本页]

作者: 胡大强    时间: 2012-6-16 01:59
标题: 不知道为啥不能输入。。。。。还是配置问题。。。
  1. /*角谷猜想*/
  2. /*任意给定一个自然数,若它为偶数则除以2,若它为奇数则乘以3,得到一个新的自然数,照这样计算下去,若干次后必然得到1*/
  3. import java.util.Scanner;
  4. import java.io.*;
  5. class jiaogu
  6. {
  7.         public static void main(String[] args)
  8.         {
  9.                 int count=1;
  10.                 Scanner in=new Scanner(System.in);
  11.                 int n=nextInt();
  12.                 while(n!=1&&count<=1000)  //设定范围
  13.                 {
  14.                         if(n%2==0)  //n为偶数
  15.                         {
  16.                                 System.out.print(n/2);
  17.                                 n=n/2;
  18.                         }
  19.                         else{    //n为奇数情况
  20.                                 System.out.print(n*3+1);
  21.                                 n=n*3+1;   ///这里才是关键。。奇数*3还是奇数。。。所以还要加1.。。。
  22.                         }
  23.                         count++;
  24.                 }
  25.                 if(count<=1000&&n==1){
  26.                         System.out.print("角谷猜想正确!");
  27.         }
  28. }
复制代码

作者: 邱国    时间: 2012-6-16 02:33
本帖最后由 邱国 于 2012-6-16 02:35 编辑

第11行代码应该是:int n=in.nextInt();
作者: 郑冬    时间: 2012-6-16 06:28
本帖最后由 郑冬 于 2012-6-16 06:40 编辑


import java.util.Scanner;

import java.io.*;

public class jiaogu
{

        public static void main(String[] args)
        {

                int count=1;

                Scanner in=new Scanner(System.in);

                int n=in.nextInt();

                while(n!=1&&count<=1000)  //设定范围

                {

                        if(n%2==0)  //n为偶数

                        {

                                 n=n/2;
                                 System.out.println("偶数除2:" + n);
                              

                        }

                        else{    //n为奇数情况
                                 n=n*3+1;
                              
                                
                                System.out.println("奇数乘3+1:" + n);

                                  ///这里才是关键。。奇数*3还是奇数。。。所以还要加1.。。。

                        }

                        count++;

                }

                if(count<=1000&&n==1){

                        System.out.print("角谷猜想正确!");

        }

}
}
这样修改后可以输出,而且看起来输出效果好多了
作者: 火焱    时间: 2012-6-16 06:48
int n=nextInt();
Java中方法的调用需要用:对象.方法 或者:类.静态方法
故应改为:int n = in.nextInt();

作者: 孙飞    时间: 2012-6-16 11:03
虽然还不懂,但在努力中,顶一下
作者: 胡大强    时间: 2012-6-16 13:14
邱国 发表于 2012-6-16 02:33
第11行代码应该是:int n=in.nextInt();

还是输入不了。。。
作者: 张頔    时间: 2012-6-16 14:49
/*角谷猜想*/
/*任意给定一个自然数,若它为偶数则除以2,若它为奇数则乘以3,得到一个新的自然数,照这样计算下去,若干次后必然得到1*/
import java.util.Scanner;
import java.io.*;
class Demo
{
        public static void main(String[] args)
        {
                int count=1;
                Scanner in=new Scanner(System.in);
                int n=in.nextInt();                            //这个地方是in.nextInt()
                while(n!=1&&count<=1000)  //设定范围
                {
                        if(n%2==0)  //n为偶数
                        {
                                System.out.println(n/2);
                                n=n/2;
                        }
                        else{    //n为奇数情况
                                System.out.println(n*3+1);
                                n=n*3+1;   ///这里才是关键。。奇数*3还是奇数。。。所以还要加1.。。。
                        }
                        count++;
                }
                if(count<=1000&&n==1){
                        System.out.print("角谷猜想正确!");
        }
        }
}//最后少了一个括号

我已经验证可以输出结果




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2