Java 练习题库

本文介绍了六个Java编程练习题,包括整数各位数字之和、判断水仙花数、数组求和与平均值、计算PI近似值、迭代求平方根。这些题目旨在提升编程技能和理解基本算法。
摘要由CSDN通过智能技术生成

1.简介

        介绍几道稍有难度的java实验题,欢迎大家练习讨论

2.整数的各位数字之和

        输入一个正整数,计算并输出整数的各位数字之和。

        如输入12345,结果显示15,如下图所示。

import java.util.Scanner;
public class Sum{
    public static void main(String[] args){
        int num, sum=0;   // num:输入的整数 sum:位数之和
        Scanner scanner=new Scanner(System.in); 
        num=scanner.nextInt(); // // 输入整数值
        while(num!=0){    // 当整数不为0时,循环执行
            sum+=num%10;  // 利用%每次取最低位并累加给sum
            num=num/10;   // 利用/在每次取最低位后砍掉最低位
        }
        System.out.println(sum);
    }
}

3.水仙花数判定

        输入一个三位数(xxx),输出确认它是否是一个水仙花数。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数。

例如234不是一个水仙花数。程序运行显示:

import java.util.Scanner;
public class NarcissisticNumber{
    public static void main (String[] args){
        int num,a,b,c; // num:判定数 a:个位 b: 十位 c:百位
        Scanner scanner;
        scanner=new Scanner(System.in);
        System.out.print("请输入一个三位数:");
        num=scanner.nextInt();
        a=num%10;
        b=num/10%10;
        c=num/100;
        if(a*a*a+b*b*b+c*c*c==num&num>99&num<1000)
            System.out.println(num+"是水仙花数");
        else
            System.out.println(num+"不是水仙花数");
    }
}
4.求整数数组的和、平均值

        输入一个整数数组,求数组的和、平均值。

例如输入一个长度为2的数组,程序运行如下:

import java.util.Scanner;
public class ArraySum{
    public static void main (String[] args){
        int[] a; // 定义整数数组
        int n,sum=0; // n:数组元素个数 sum:数组的和
        Scanner scanner1;
        scanner1=new Scanner(System.in);
        System.out.print("请输入数组中元素个数:");
        n=scanner1.nextInt(); 
        a=new int[n];
        for(int i=0;i<n;i++){
            System.out.print("请输入第"+(i+1)+"个元素:");
            a[i]=scanner1.nextInt();
            sum+=a[i];
        }
        System.out.println("数组的和为"+sum);
        System.out.println("数组的平均值为"+sum*1.0/n);        
    }
}

5.求pai的近似值

用公式

的近似值,直到最后一项绝对值小于给定的精度。

如输入精度

,其计算结果运算如下(计算要求使用double精度):

import java.util.Scanner;
public class ShowPI{
    public static void main (String[] args){
        int i=1;
        int sign =-1;
        double PI=0.0, item=0.0;
        Scanner scanner1=new Scanner(System.in);
        System.out.print("请输入要求的精度值:");
        double eps=scanner1.nextDouble();        
        do {
            sign = -sign;
            item = 1.0/(2*i-1);
            PI += item*sign;
            i++;
        } while (Math.abs(item)>=eps);        
        System.out.println(PI*4);
    }
}

 6.用迭代法求平方根

用迭代法求

。求平方根的迭代公式为

其中x0=a/2。要求前后二次求出的x的差的绝对值小于1.0e-5。

写一个类,其中有二个方法,方法一的功能是用迭代法求平方根;方法二为main方法,输入a之值,并调用方法1,计算显示其平方根。显示结果类似:

import java.util.Scanner;
public class MySqrt {
    public static void main(String[] args) {
        Scanner scanner1=new Scanner(System.in);
        System.out.print("请输入a之值:");
        double a=scanner1.nextDouble();
        System.out.println(""+a+"的平方根为"+sqrt(a));
    }
    public static double sqrt(double a) {
        double xn = a/2;
        while (true) {
            double xn1 = 0.5*(xn + a/xn);
            if (Math.abs(xn1-xn)<1.0e-5) return xn1;
            xn =xn1;
        }
    }

}

 

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值