Java程序设计基础实验

(一)已知圆球体积公式为V=4/3·pi·r3,是编写程序设计一个求圆球体积的方法,并在主程序中调用它,求出当r=3时圆球的体积值。
package example;

public class Demo1 {
    public static void main(String[] args) {
        int r = 3;
        double PI = 3.14;
        double v = (4.0 * Math.PI * r) / 3.0;
        System.out.println("圆球体积:" + v);
    }
}
(二)曾有一位印度国王要奖赏聪明能干的宰相达依尔 ,达依尔 只要求在国际象棋的64个盘格上放置小麦粒,第一个格子里放1粒,第二个格子里放2粒,第三个格子里放4粒,第四个格子里放8粒……问最后需放多少小麦粒呢?
package example;
import java.math.BigInteger;

public class Demo2 {
    public static void main(String[] args) {

        BigInteger sum=BigInteger.ZERO;
        for(int i=1;i<=64;i++){
            BigInteger item=BigInteger.ONE;
            for(int j=1;j<i;j++){
                item=item.multiply(BigInteger.valueOf(2));
            }
            sum=sum.add(item);
        }
        System.out.println("最后需要放置的小麦数量:"+sum);
    }
}
(三)打印出所有的"水仙花数"。所谓"水仙花数",是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个"水仙花数",因为153=13+15+33
package example;

public class Demo3 {
    public static void main(String[] args) {
        System.out.println("水仙花数有:");
        for (int i = 0; i < 1000; i++) {
            int h = i / 100;
            int t = i % 100 / 10;
            int s = i % 10;
            if (h * h * h + t * t * t + s * s * s == i) {
                System.out.print(i + "  ");
            }
        }
    }
}

(四)一张纸的厚度为0.1mm,珠穆朗玛峰的高度为8843.13m,假如纸张有足够大,将纸对折多少次可以超过珠峰的高度?
package example;

public class Demo4 {
    public static void main(String[] args) {
        double initial_thickness = 0.1, everest_height = 88481300;
        int num = 0;
        for (num = 0; initial_thickness <= everest_height; num++) {
            initial_thickness *= 2;
        }
        System.out.println("对折次数为:" + num);
    }
}
(五)编写一个程序,定义一个数组并实现数组的逆置。
package example;

public class Demo5 {
    public static void reverse(int[] array) {
        int left = 0;
        int right = array.length-1;
        while (left < right) {
            int temp = array[left];
            array[left] = array[right];
            array[right] = temp;
            left++;
            right--;
        }
    }
    public static void main(String[] args) {
        int[] array = {0,1,2,3,4};
        reverse(array);
        for(int i=0;i<5;i++)
        {
            System.out.print(array[i]+"  ");
        }
    }
}
(六)编写一个程序,判定用户输入的正数是否为“回文数”。所谓“回文数”是指该数正读和反读都相同(如12321)。
package example;
import java.util.Scanner;

public class Demo6 {
public static void main(String args[]){
    System.out.println("请输入一个数: ");
    Scanner in=new Scanner(System.in);
    int num=in.nextInt();
    int sum=num,s=0;
    while(num!=0)
    {
        int c=num%10;
        s=s*10+c;
        num/=10;
    }
    if(s==sum)
    {
        System.out.println(s+"是一个回文数");
    }
    else 
    {
        System.out.println(s+"不是一个回文数");
    }
    in.close();
    }
}
(七)编写程序,求出100~200的所有素数。
package example;

public class Demo7 {

    public static void isPrime(int n) {
        int m = 0;
        for (int i = 2; i < n; i++) {
            if (n % i == 0)
                m++;
        }
        if (m == 0){
            System.out.println(n);
      	}
    }

    public static void main(String args[]) {
        for (int i = 100; i <= 200; i++) {
            isPrime(i);
        }
    }
}
(八)编写程序,求出一个计算3×3矩阵的两条对角线(主、辅对角线)上的元素之和。
package example;
import java.util.Scanner;

public class Demo8 {
    public static void main(String[] args) {
        System.out.println("请输入九个整数:");
        Scanner sc = new Scanner(System.in);
        int[][] a = new int[3][3];
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                a[i][j] = sc.nextInt();
            }
        }

        int sum1 = 0, sum2 = 0;
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                if (i == j) {
                    sum1 += a[i][j];
                }
                if (i + j == 2) {
                    sum2 += a[i][j];
                }
            }
        }
        System.out.println("主对角线元素之和为:" + sum1);
        System.out.println("辅对角线元素之和为:" + sum2);
        sc.close();
    }
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值