金孟瑶吧 关注:102贴子:6,440
  • 14回复贴,共1

最新JAVA编程题全集(50题及答案)

只看楼主收藏回复

首先 感谢 @1个80后 的友情帮助下载文档
才让我能把这50个小程序 分享到这里 谢谢
土豪 我们是好朋友哈


1楼2014-11-24 16:08回复
    【程序1】
    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
    //这是一个菲波拉契数列问题
    publicclass lianxi01 {
    public static void main(String[] args) {
    System.out.println("第1个月的兔子对数: 1");
    System.out.println("第2个月的兔子对数: 1");
    int f1 = 1, f2 = 1, f, M=24;
    for(int i=3; i<=M; i++) {
    f = f2;
    f2 = f1 + f2;
    f1 = f;
    System.out.println("第" + i +"个月的兔子对数: "+f2);
    }
    }
    }


    2楼2014-11-24 16:09
    回复
      【程序2】
      题目:判断101-200之间有多少个素数,并输出所有素数。
      程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
      public class lianxi02 {
      public static void main(String[] args) {
      int count = 0;
      for(int i=101; i<200; i+=2) {
      boolean b = false;
      for(int j=2; j<=Math.sqrt(i); j++)
      {
      if(i % j == 0) { b = false; break; }
      else { b = true; }
      }
      if(b == true) {count++;System.out.println(i );}
      }
      System.out.println( "素数个数是: " + count);
      }
      }


      3楼2014-11-24 16:10
      回复

        【程序7】
        题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
        import java.util.*;
        public class lianxi07 {
        public static void main(String[] args) {
        int digital = 0;
        int character = 0;
        int other = 0;
        int blank = 0;
        char[] ch = null;
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        ch = s.toCharArray();
        for(int i=0; i<ch.length; i++) {
        if(ch >= '0' && ch <= '9') {
        digital ++;
        } else if((ch >= 'a' && ch <= 'z')|| ch > 'A' && ch <= 'Z') {
        character ++;
        } else if(ch == ' ') {
        blank ++;
        } else {
        other ++;
        }
        }
        System.out.println("数字个数: " + digital);
        System.out.println("英文字母个数: " + character);
        System.out.println("空格个数: " + blank);
        System.out.println("其他字符个数:" + other );
        }
        }


        8楼2014-11-24 16:11
        回复
          【程序8】
          题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
          import java.util.*;
          public class lianxi08 {
          public static void main(String[] args) {
          long a , b = 0, sum = 0;
          Scanner s = new Scanner(System.in);
          System.out.print("输入数字a的值: ");
          a = s.nextInt();
          System.out.print("输入相加的项数:");
          int n = s.nextInt();
          int i = 0;
          while(i < n) {
          b = b + a;
          sum = sum + b;
          a = a * 10;
          ++ i;
          }
          System.out.println(sum);
          }
          }


          9楼2014-11-24 16:12
          回复

            【程序9】
            题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。
            public class lianxi09 {
            public static void main(String[] args) {
            System.out.println("1到1000的完数有: ");
            for(int i=1; i<1000; i++) {
            int t = 0;
            for(int j=1; j<= i/2; j++) {
            if(i % j == 0) {
            t = t + j;
            }
            }
            if(t == i) {
            System.out.print(i +" ");
            }
            }
            }


            10楼2014-11-24 16:12
            回复
              【程序11】
              题目:有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
              public class lianxi11 {
              public static void main(String[] args) {
              int count = 0;
              for(int x=1; x<5; x++) {
              for(int y=1; y<5; y++) {
              for(int z=1; z<5; z++) {
              if(x != y && y != z&& x != z) {
              count ++;
              System.out.println(x*100 +y*10 + z );
              }
              }
              }
              }
              System.out.println("共有" + count +"个三位数");
              }
              }


              12楼2014-11-24 16:12
              回复

                【程序12】
                题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总数?
                import java.util.*;
                public class lianxi12 {
                public static void main(String[] args) {
                double x = 0,y = 0;
                System.out.print("输入当月利润(万):");
                Scanner s = new Scanner(System.in);
                x = s.nextInt();
                if(x > 0 && x <= 10) {
                y = x * 0.1;
                } else if(x > 10 && x <= 20) {
                y = 10 * 0.1 + (x - 10) * 0.075;
                } else if(x > 20 && x <= 40) {
                y = 10 * 0.1 + 10 * 0.075 + (x - 20) * 0.05;
                } else if(x > 40 && x <= 60) {
                y = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (x - 40)* 0.03;
                } else if(x > 60 && x <= 100) {
                y = 20 * 0.175 + 20 * 0.05 + 20 * 0.03 + (x -60) * 0.015;
                } else if(x > 100) {
                y = 20 * 0.175 + 40 * 0.08 + 40 * 0.015 + (x -100) * 0.01;
                }
                System.out.println("应该提取的奖金是 " + y + "万");
                }
                }


                13楼2014-11-24 16:13
                回复
                  【程序13】
                  题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
                  public class lianxi13 {
                  public static void main(String[] args) {
                  for(int x =1; x<100000; x++) {
                  if(Math.sqrt(x+100) % 1 == 0) {
                  if(Math.sqrt(x+268) % 1 == 0) {
                  System.out.println(x + "加100是一个完全平方数,再加168又是一个完全平方数");
                  }
                  }
                  }
                  }
                  }


                  14楼2014-11-24 16:13
                  回复

                    【程序14】
                    题目:输入某年某月某日,判断这一天是这一年的第几天?
                    import java.util.*;
                    public class lianxi14 {
                    public static void main(String[] args) {
                    int year, month, day;
                    int days = 0;
                    int d = 0;
                    int e;
                    input fymd = new input();
                    do {
                    e = 0;
                    System.out.print("输入年:");
                    year =fymd.input();
                    System.out.print("输入月:");
                    month = fymd.input();
                    System.out.print("输入天:");
                    day = fymd.input();
                    if (year < 0 || month < 0 || month > 12 ||day < 0 || day > 31) {
                    System.out.println("输入错误,请重新输入!");
                    e=1 ;
                    }
                    }while( e==1);
                    for (int i=1; i <month; i++) {
                    switch (i) {
                    case 1:
                    case 3:
                    case 5:
                    case 7:
                    case 8:
                    case 10:
                    case 12:
                    days = 31;
                    break;
                    case 4:
                    case 6:
                    case 9:
                    case 11:
                    days = 30;
                    break;
                    case 2:
                    if ((year % 400 == 0) || (year % 4 == 0&& year % 100 != 0)) {
                    days = 29;
                    } else {
                    days = 28;
                    }
                    break;
                    }
                    d += days;
                    }
                    System.out.println(year + "-" + month +"-" + day + "是这年的第" +(d+day) + "天。");
                    }
                    }
                    class input{
                    public int input() {
                    int value = 0;
                    Scanner s = new Scanner(System.in);
                    value = s.nextInt();
                    return value;
                    }
                    }


                    15楼2014-11-24 16:14
                    回复
                      【程序15】
                      题目:输入三个整数x,y,z,请把这三个数由小到大输出。
                      import java.util.*;
                      public class lianxi15 {
                      public static void main(String[] args) {
                      input fnc = new input();
                      int x=0, y=0, z=0;
                      System.out.print("输入第一个数字:");
                      x = fnc.input();
                      System.out.print("输入第二个数字:");
                      y = fnc.input();
                      System.out.print("输入第三个数字:");
                      z = fnc.input();
                      if(x > y) {
                      int t = x;
                      x = y;
                      y = t;
                      }
                      if(x > z) {
                      int t = x;
                      x = z;
                      z = t;
                      }
                      if(y > z) {
                      int t = y;
                      y = z;
                      z = t;
                      }
                      System.out.println( "三个数字由小到大排列为: "+x + " " +y + " " + z);
                      }
                      }
                      class input{
                      public int input() {
                      int value = 0;
                      Scanner s = new Scanner(System.in);
                      value = s.nextInt();
                      return value;
                      }
                      }


                      16楼2014-11-24 16:14
                      回复
                        【程序16】
                        题目:输出9*9口诀。
                        public class lianxi16 {
                        public static void main(String[] args) {
                        for(int i=1; i<10; i++) {
                        for(int j=1; j<=i; j++) {
                        System.out.print(j + "*" + i +"=" + j*i + " " );
                        if(j*i<10){System.out.print(" ");}
                        }
                        System.out.println();
                        }
                        }
                        }


                        17楼2014-11-24 16:15
                        回复

                          【程序17】
                          题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
                          public class lianxi17 {
                          public static void main(String[] args) {
                          int x = 1;
                          for(int i=2; i<=10; i++) {
                          x = (x+1)*2;
                          }
                          System.out.println("猴子第一天摘了 " + x + " 个桃子");
                          }
                          }


                          18楼2014-11-24 16:15
                          回复