美文网首页
50道JAVA编程算法题(三)

50道JAVA编程算法题(三)

作者: 微尘_8957 | 来源:发表于2018-07-31 09:12 被阅读0次

    【程序41】

    题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

    public class  Prog41{

        public static void main(String[] args){

            int n;

            n = fun(0);

            System.out.println("原来有"+n+"个桃子");

        }

        private static int fun(int i){

            if(i==5)

      return 1;

            else

      return fun(i+1)*5+1;

        }

    }

    【程序42】

    题目:809*??=800*??+9*??+1

    其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

    public class  Prog42{

        public static void main(String[] args){

            int n = 0;

            boolean flag = false;

            for(int i=10;i<100;i++)

      if(809*i==800*i+9*i+1){

        flag = true;

        n = i;

        break;

      }

            if(flag)

      System.out.println(n);

            else

      System.out.println("无符合要求的数!");

        }

    }

    【程序43】

    题目:求0—7所能组成的奇数个数。

    public class  Prog43{

        public static void main(String[] args){

            int count = 0;

            //声明由数字组成的数

            int n = 8;

            //一位数

            count = n/2;

            //两位数

            count += (n-1)*n/2;

            //三位数

            count += (n-1)*n*n/2;

            //四位数

            count += (n-1)*n*n*n/2;

            //五位数

            count += (n-1)*n*n*n*n/2;

            //六位数

            count += (n-1)*n*n*n*n*n/2;

            //七位数

            count += (n-1)*n*n*n*n*n*n/2;

            System.out.println("0-7所能组成的奇数个数:"+count);

        }

    }

    【程序44】

    题目:一个偶数总能表示为两个素数之和。

    import  java.util.Scanner;

    public class  Prog44{

        public static void main(String[] args){

            System.out.print("请输入一个偶数:");

            Scanner scan = new Scanner(System.in);

            int n = scan.nextInt();

            scan.close();

            if(n%2!=0){

      System.out.println("您输入的不是偶数!");

      return;

            }

            twoAdd(n);

        }

        //偶数分解为素数之和

        private static void twoAdd(int n){

            for(int i=2;i

                if(isPrime(i)&&isPrime(n-i)){

                    System.out.println(n+"="+(i)+"+"+(n-i));

                    break;

                }

            }

        }

        //判断素数

        private static boolean isPrime(int m){

            boolean flag = true;

            for(int i=2;i

                if(m%i==0){

                    flag = false;

                    break;

                }

            }

            return flag;

        }

    }

    【程序45】

    题目:判断一个素数能被几个9整除

    import  java.util.Scanner;

    public class  Prog45{

        public static void main(String[] args){

            System.out.print("请输入一个数:");

      Scanner scan = new Scanner(System.in);

      long l = scan.nextLong();

      long n = l;

      scan.close();

      int count = 0;

      while(n>8){

      n /= 9;

      count++;

          }

      System.out.println(l+"能被"+count+"个9整除。");

        }

    }

    【程序46】

    题目:两个字符串连接程序

    public class  Prog46{

        public static void main(String[] args){

            String str1 = "lao lee";

      String str2 = "牛刀";

      String str = str1+str2;

      System.out.println(str);

        }

    }

    【程序47】

    题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。

    import  java.util.Scanner;

    public class  Prog47{

        public static void main(String[] args){

            System.out.print("请输入7个整数(1-50):");

            Scanner scan = new Scanner(System.in);

            int n1 = scan.nextInt();

            int n2 = scan.nextInt();

            int n3 = scan.nextInt();

            int n4 = scan.nextInt();

            int n5 = scan.nextInt();

            int n6 = scan.nextInt();

            int n7 = scan.nextInt();

            scan.close();

            printStar(n1);

            printStar(n2);

            printStar(n3);

            printStar(n4);

            printStar(n5);

            printStar(n6);

            printStar(n7);

        }

        static void printStar(int m){

            System.out.println(m);

            for(int i=0;i

      System.out.print("*");

            System.out.println();

        }

    }

    【程序48】

    题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

    public class  Prog48{

        public static void main(String[] args){

            int n = 1234;

            int[] a = new int[4];

            for(int i=3;i>=0;i--){

      a[i] = n%10;

      n /= 10;

            }

            for(int i=0;i<4;i++)

      System.out.print(a[i]);

            System.out.println();

            for(int i=0;i

      a[i] += 5;

      a[i] %= 10;

            }

            int temp1 = a[0];

            a[0] = a[3];

            a[3] = temp1;

            int temp2 = a[1];

            a[1] = a[2];

            a[2] = temp2;

            for(int i=0;i

      System.out.print(a[i]);

        }

    }

    【程序49】

    题目:计算字符串中子串出现的次数

    public class  Prog49{

        public static void main(String[] args){

            String str = "I come fromCounty DingYuan ProvinceAnHui.";

            char[] ch = str.toCharArray();

            int count = 0;

            for(int i=0;i

                if(ch[i]==' ')

      count++;

            }

            count++;

            System.out.println("共有"+count+"个字串");

        }

    }

    【程序50】

    题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。

    import  java.io.*;

    public class  Prog50{

        //定义学生模型

        String[] number = new String[5];

        String[] name = new String[5];

        float[][] grade = new float[5][3];

        float[] sum = new float[5];

        public static void main(String[] args)  throws Exception{

            Prog50 stud = new Prog50();

            stud.input();

            stud.output();

        }

        //输入学号、姓名、成绩

        void input() throws IOException{

            BufferedReader br = new  BufferedReader(new InputStreamReader(System.in));

            //录入状态标识

            boolean isRecord = true;

            while(isRecord){

                try{

      for(int i=0;i<5;i++){

                      System.out.print("请输入学号:");

                      number[i] = br.readLine();

                      System.out.print("请输入姓名:");

                      name[i] = br.readLine();

                      for(int j=0;j<3;j++){

                          System.out.print("请输入第"+(j+1)+"门课成绩:");

                          grade[i][j] = Integer.parseInt(br.readLine());

                      }

                      System.out.println();

                      sum[i] =  grade[i][0]+grade[i][1]+grade[i][2];

      }

      isRecord = false;

      }catch(NumberFormatException e){

                     System.out.println("请输入一个数字!");

      }

            }

        }

        //输出文件

        void output() throws IOException{

            FileWriter fw = new  FileWriter("E://java50//stud.txt");

            BufferedWriter bw = new  BufferedWriter(fw);

            bw.write("No.  "+"Name  "+"grade1  "+"grade2  "+"grade3  "+"average");

            bw.newLine();

            for(int i=0;i<5;i++){

      bw.write(number[i]);

      bw.write(" 

      "+name[i]);

      for(int j=0;j<3;j++)

      bw.write(" 

      "+grade[i][j]);

      bw.write(" 

      "+(sum[i]/5));

      bw.newLine();

            }

            bw.close();

        }

    }

    相关文章

      网友评论

          本文标题:50道JAVA编程算法题(三)

          本文链接:https://www.haomeiwen.com/subject/fvrcvftx.html