A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 月影千华 于 2015-9-12 13:43 编辑

我想写程序的时候把程序写得简单易懂一些,但是老是事与愿违,老是写的特别长特别乱,请大神们教导下,怎么才能写出简洁的代码呀……我是新入学的,学了三天了。目前学习内容只到switch讲完,Scanner是老师额外讲的。下面我做了三个题,大神们帮我看下看看可以改短一些吗,谢谢。
  1. /*
  2. 有一对兔子出生,从第三月起,每个月生一对兔子,出生的兔子也是第三月起每个月生一对兔子,
  3. 输入一个月数,打印出该月数的兔子对数。
  4. 思路:兔子的对数是 1,1,2,3,5,8,13,21……从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和。
  5. */
  6. import java.util.Scanner;
  7. class  TuziDemo
  8. {
  9.         public static void main(String[] args)
  10.         {
  11.                 Scanner sc=new Scanner(System.in);
  12.                 System.out.println("请输入月数:");
  13.                 int x;
  14.                 long m1,m2;
  15.                 m1=m2=1L;
  16.                 x=sc.nextInt();
  17.                 if (x>0)
  18.                 {
  19.                         for (int m=3;m<=x ;m++ )
  20.                         {
  21.                                 if(x==1 || x==2)
  22.                                 {
  23.                                         m1=m2=1L;
  24.                                 }
  25.                                 else
  26.                                 {
  27.                                         m2=m2+m1;
  28.                                         m1=m2-m1;
  29.                                 }
  30.                         }
  31.                         System.out.println("第"+x+"个月兔子的对数是:"+m2);
  32.                 }
  33.                 else
  34.                 {
  35.                         System.out.println("您输入的月数有误!");
  36.                 }
  37.         }
  38. }
复制代码

  1. /*
  2. 将一个整数分解质因数。
  3. 思路:
  4. A:定义变量,x,n代表要被分解的整数,y代表质因数,如果x能被当前的y整除,就把x/y的值再赋值给x,继续进行除法,一直到除不尽为止。
  5. B:flag为真时是合数,flag为假是是质数。质数的质因数就是1乘以它自身。
  6. */
  7. class  FenjieDemo
  8. {
  9.         public static void main(String[] args)
  10.         {
  11.                 int x,n;
  12.                 boolean flag=false;
  13.                 x=n=78;                    //因为x的值在后面的循环中一直在变,我就定义了一个n让他和x的初始值相同,用以代替x
  14.                 System.out.print("\n"+x+" = ");
  15.                 for (int y=2;2*y<=n ;y++ )
  16.                 {
  17.                         while (x%y==0)      //可以除尽的结果 一直循环到除不尽为止
  18.                         {
  19.                                 System.out.print(y+" x ");
  20.                                 x=x/y;
  21.                                 flag=true;
  22.                         }
  23.                 }
  24.                 if (flag)
  25.                 {
  26.                         System.out.print("\b\b"+"        "+"\n");
  27.                 }
  28.                 else
  29.                 {
  30.                         System.out.println("1"+" x "+x);
  31.                 }
  32.         }
  33. }
复制代码
  1. /*
  2. 从键盘输入一个正整数,将其分解质因数。
  3. 思路:
  4. A:定义变量,x,n代表要被分解的整数,y代表质因数,如果x能被当前的y整除,就把x/y的值再赋值给x,继续进行除法,一直到除不尽为止。
  5. B:flag为真时是合数,flag为假是是质数。质数的质因数就是1乘以它自身。
  6. */
  7. import java.util.Scanner;
  8. class  FenjieDemo1
  9. {
  10.         public static void main(String[] args)
  11.         {
  12.                 Scanner sc=new Scanner(System.in);
  13.                 int x,n;
  14.                 boolean flag=false;
  15.                 System.out.println("请输入一个正整数:");
  16.                 x=n=sc.nextInt();
  17.                 if (x<=0)
  18.                 {
  19.                         System.out.println("输入有误!");
  20.                 }
  21.                 else
  22.                 {
  23.                         System.out.print("\n"+x+" = ");
  24.                         for (int y=2;2*y<=n ;y++ )
  25.                         {
  26.                                 while (x%y==0)
  27.                                 {
  28.                                         System.out.print(y+" * ");
  29.                                         x=x/y;
  30.                                         flag=true;
  31.                                 }
  32.                         }
  33.                         if (flag)
  34.                         {
  35.                                 System.out.print("\b\b"+"        "+"\n");
  36.                         }
  37.                         else
  38.                         {
  39.                                 System.out.println("1"+" x "+x);
  40.                         }
  41.                 }
  42.         }
  43. }
复制代码





17 个回复

倒序浏览
求大神指导呀……
回复 使用道具 举报
三天代码都写的这么熟练了  惭愧
回复 使用道具 举报
学习了。。。。。。。。。
回复 使用道具 举报
高,才三天就这么厉害了。
回复 使用道具 举报
建议按照标准格式写java代码,你的是c语言格式
回复 使用道具 举报
惭愧呀
回复 使用道具 举报
渭水的一只 发表于 2015-9-12 18:38
三天代码都写的这么熟练了  惭愧

没有呀,一题都要写好久。
回复 使用道具 举报
往事如风555 发表于 2015-9-12 19:14
高,才三天就这么厉害了。

一题都要写好久。。。
回复 使用道具 举报
惭愧惭愧
回复 使用道具 举报
Tangjw 发表于 2015-9-12 21:15
建议按照标准格式写java代码,你的是c语言格式

……不是吧,我都是对齐的呀。我不知道C语言格式,这样写是因为只学了if 和 for 就只能一直嵌套。
回复 使用道具 举报
路过, 俺是打酱油的
回复 使用道具 举报
惭愧惭愧。。。加油!三天真的挺不错的
回复 使用道具 举报
就是呀 程序员就是撸代码到吐血
回复 使用道具 举报
好惭愧喔。
回复 使用道具 举报
亲,其实这样挺好的!给新手谢谢,步骤详细 , 哈哈
回复 使用道具 举报
现在就这么写着,等你以后使用了Eclipse之后会自动帮你转变成标准格式的!
回复 使用道具 举报
才三天都这么厉害了~~自愧不如啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马