50道JAVA基础编程练习题5

【程序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();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值