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

public class Prog41{
        public
 static void main(String[] args){
               int
 n=fun(0);
               System.out.println(“原来有”+n+“个桃子”);
        }
        public
 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(809i==800i+9i+1&&8i<100&&9*i>99){
                     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
 i = 7;
               System.out.println(“0—”• i + “所能组成的奇数个数:”);
               count(i);
        }
        public
 static int count(int num) {
               if
 (num == 0)
                      return
 0;
               if
 (num == 1)
                      return
 1;
               int
 sum = 0;
               int
 temp = 0;
               if
 (num % 2 == 0)
                      temp
 = num / 2;
               else
                      temp
 = num / 2 + 1;
               sum
 += temp;
               System.out.println(“1位数” + sum + “个,算法:偶数除以2;奇数除以2加1”);
               for
 (int i = 0; i < num; i++) {
                      int
 temp1 = temp;
                      int
 temp2 = num - 1;
                      boolean
 boo = true;
                      StringBuffer
 sb = new StringBuffer();
                      for
 (int j = 0; j < i + 1; j++) {
                             sb.append(temp2).append("*");
                             temp1
 = temp2 * temp1;
                             if
 (boo) {
                                    boo
 = false;
                                    continue;
                             }
                             temp2–;
                      }
                      sum
 += temp1;
                      System.out.println((i• “位数” + temp1
• “个,算法:”
• sb + temp);
               }
               System.out.println(“总数 " + sum + " 个”);
               return
 sum;
        }
 }

【程序44】题目:一个偶数总能表示为两个素数之和。

import java.util.Scanner;
 public class Prog44{
        public
 static void main(String[] args){
               Scanner
 sc=new Scanner(System.in);
               System.out.println(“输入一个偶数:”);
               int
 n=sc.nextInt();
               for(int
 i=2;i<n/2+1;i++) {
                      if(isPrime(i)&&isPrime(n-i))
 {
                             System.out.println(n+"="+i+"+"+(n-i));
                      }
               }
        }
        public
 static boolean isPrime(int n) {
               boolean
 flag=true;
               for(int
 i=2;i<Math.sqrt(n)+1;i++) {
                      if(n%i==0)
 {
                             flag=false;
                      }
               }
               return
 flag;
        }
 }

【程序45】题目:判断一个素数能被几个9整除

import java.util.Scanner;
 public class Prog45{
        public
 static void main(String[] args){
               Scanner
 sc=new Scanner(System.in);
               System.out.println(“输入一个数:”);
               int
 n=sc.nextInt();
               int
 count=0;
               int
 x=n;
               while(x>8)
 {
                      if(x%9==0)
                      count++;
                      x/=9;
               }
               System.out.println(n+“能被”+count+“个9整除”);
        }
 }

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

public class Prog46{
        public
 static void main(String[] args){
               Scanner
 sc=new Scanner(System.in);
               System.out.println(“输入两个字符串:”);
               String
 s1=sc.nextLine();
               String
 s2=sc.nextLine();
               System.out.println(s1+s2);
        }}

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

import java.util.Scanner;
 public class Prog47{
        public
 static void main(String[] args){
               System.out.println(“7个整数(1-50):”);
               Random
 random=new Random();
               for(int
 i=0;i<7;i++) {
                      int
 m=random.nextInt(50);
                      System.out.println(m);
                      for(int
 j=0;j<m;j++) {
                             System.out.print("*");
                      }
                      System.out.println();
               }
        }
 }

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

public class Prog48{
 public static void main(String[] args){
               Scanner
 sc=new Scanner(System.in) ;
               System.out.println(“请输入一个四位数:”);
               int
 n=sc.nextInt();
               int
 [] a=new int[4];
               for(int
 i=a.length-1;i>=0;i–) {
                      a[i]=n%10;
                      n=n/10;
               }
               for(int
 i=0;i<a.length;i++) {
                      a[i]+=5;
                      a[i]%=10;
               }
               int
 t1=a[0];
               a[0]=a[3];
               a[3]=t1;
               int
 t2=a[1];
               a[1]=a[2];
               a[2]=t2;
               for(int
 i=0;i<a.length;i++) {
                      System.out.print(a[i]);
               }
        }
 }

【程序49】题目:计算字符串中子串出现的次数

public class Prog49{
        public
 static void main(String[] args) {
               Scanner
 sc = new Scanner(System.in);
               System.out.println(“请输入一个字符串:”);
               String
 str = sc.nextLine();
               System.out.println(“请输入一个子串:”);
               String
 s = sc.nextLine();
               int
 index = 0; // 遍历字符串
               int
 count = 0; // 统计次数
               for
 (index = 0; index < str.length() + 1 - s.length(); index++) {
                      if
 (str.substring(index, s.length() + index).equals(s)) {
                             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();
     }
 }