Java编程习题:星期几问题、计算圆柱体的体积、输出数字三角、随机加法问题、求e的值、素数、水仙花数、第几天问题。

本人Java小白,欢迎各位大佬指教~

1.如果今天是星期二,问一百天后是星期几

public class Week {
	public static void main(String[] args) {
		//如果今天是星期二,问一百天后是星期几
		
		int start=2;
		int end=100%7+start;
		System.out.printf("一百天后是星期%d",end);
	}
}

运行结果

一百天后是星期4

2.读取圆柱体的底面半径和高,计算圆柱体的底面积和体积

import java.util.Scanner;

public class Cylinder {
	public static void main(String[] args) {
		//读取圆柱体的底面半径和高,计算圆柱体的底面积和体积
		
		Scanner sc=new Scanner(System.in);
		System.out.println("输入底面半径和高");
		double radius=sc.nextDouble();
		double height=sc.nextDouble();
		double area=radius*radius*Math.PI;
		double volume=area*height;
		System.out.printf("底面积为:%6.4f",area);
		System.out.printf("体积为:%6.4f",volume);
	}
}

运行结果

输入底面半径和高
2 3
底面积为:12.5664体积为:37.6991

3.输出数字三角形

public class ShuziSanjiao {
	public static void main(String[] args) {
		//输出数字三角形
		
		for(int i=1;i<6;i++){
			for(int j=1;j<i+1;j++){
				System.out.print(j);
			}
			System.out.println();
		}
	}	
}

运行结果

1
12
123
1234
12345

4.随机产生10个加法问题,加数为1到15间的整数,记录正确的个数和测试时间

public class SuijishuJiafa {
	public static void main(String[] args) {
		//随机产生10个加法问题,加数为1到15间的整数
		//记录正确的个数和测试时间
		
		long startTime=System.nanoTime();
		//记录开始时间,精确到纳秒
		int count=0;
		//用于记录正确的个数
		for(int i=0;i<10;i++){
			int num1=(int)(Math.random()*15+1);
			int num2=(int)(Math.random()*15+1);
			//产生1到15间的两个加数
			int num3=(int)(Math.random()*30+1);
			//产生1到30间的数
			System.out.println(num1+"+"+num2+"="+num3);
			if(num1+num2==num3){
				++count;
			}
		}
		System.out.println("正确的个数为:"+count);
		long endTime=System.nanoTime();
		//记录结束时间
		System.out.println("测试时间为:"+(endTime-startTime));
	}
}

运行结果

5+5=29
1+12=2
7+14=21
5+9=23
10+7=19
12+10=1
5+13=16
9+3=15
13+1=3
1+9=26
正确的个数为:1
测试时间为:330100

5.求e的值,精确到10^-6,e=1+1/1!+1/2!+……+1/n!

public class Qiu_E {
	public static void main(String[] args) {
		//求e的值,精确到10^-6
		//e=1+1/1!+1/2!+……+1/n!
		
		System.out.println(Math.E);
		//标准e用于与计算结果对比
		double e=0;
		//初始化e
		double sum=1;
		int i=1;
		//用于计算算式中的阶乘
		boolean xh=true;
		//用于控制循环
		while(xh){
			e+=1/sum;
			sum*=i++;
			//用于计算e
			xh=(1/sum>=1e-6);
			//如果e已精确到10^-6,则xh变为false,循环结束
		}
		System.out.printf("%8.6f\n",e);
		//格式输出小数点后六位
	}
}

运行结果

2.718281828459045
2.718282

6.判断101~200之间有多少个素数,并输出所有素数

public class SuShu {
	public static void main(String[] args) {
		//判断101~200之间有多少个素数,并输出所有素数
		
		int count=0;
		//用于记录有多少个素数
		for(int i=101;i<201;i++){
			int sum=0;
			//用于记录要判断的数有多少个因数
			for(int j=1;j<i+1;j++){
				if(i%j==0){
					sum++;
				}
			}
			if(sum==2){
				System.out.println(i+"是素数");
				count++;
			}
		}
		System.out.println("素数有"+count+"个");
	}
}

运行结果

101是素数
103是素数
107是素数
109是素数
113是素数
127是素数
131是素数
137是素数
139是素数
149是素数
151是素数
157是素数
163是素数
167是素数
173是素数
179是素数
181是素数
191是素数
193是素数
197是素数
199是素数
素数有21

7.打印1000以内所有水仙花数

public class ShuiXianHuaShu {
	public static void main(String[] args) {
		//打印1000以内所有水仙花数
		
		for(int i=100;i<1000;i++){
			int bai=i/100;
			//取i的百位
			int shi=i/10%10;
			//取i的十位
			int ge=i%10;
			//取i的个位
			if(Math.pow(bai, 3)+Math.pow(shi, 3)+Math.pow(ge, 3)==i){
				System.out.printf("%d  ",i);
			}
		}
	}
}

运行结果

153  370  371  407  

8.输入一个年 月 日判断这一天是这一年的第几天

import java.util.Scanner;

public class RiQiPanDuan {
    public static void main(String[] args) {
        //输入一个年 月 日判断这一天是这一年的第几天

        Scanner sc=new Scanner(System.in);
        System.out.println("输入年份");
        int year=sc.nextInt();
        boolean pd=panDuan(year);
        //判断它是否为闰年
        System.out.println("输入月份");
        int month=sc.nextInt();
        //判断输入的月份是否有问题,若有则重新输入
        //例如:不能输入13月
        while(true){
            if(month>0&&month<13){
                break;
            }else{
                System.out.println("月份有误,重新输入");
                month=sc.nextInt();
            }
        }
        System.out.println("输入日期");
        int day=sc.nextInt();
        //判断输入的日期是否有误,若有则重新输入
        //例如:平年的二月不能输入29日,4月不能输入31日
        while(true){
            if(pd){
                if((month==2&&day<30)){
                    break;
                }else if((month==1&&day<32)||(month==3&&day<32)||(month==5&&day<32)||(month==7&&day<32)||(month==8&&day<32)||(month==10&&day<32)||(month==12&&day<32)){
                    break;
                }else if((month==4&&day<31)||(month==6&&day<31)||(month==9&&day<31)||(month==11&&day<31)){
                    break;
                }else{
                    System.out.println("日期有误,重新输入");
                    day=sc.nextInt();
                }
            }else if(!pd){
                if((month==2&&day<29)){
                    break;
                }else if((month==1&&day<32)||(month==3&&day<32)||(month==5&&day<32)||(month==7&&day<32)||(month==8&&day<32)||(month==10&&day<32)||(month==12&&day<32)){
                    break;
                }else if((month==4&&day<31)||(month==6&&day<31)||(month==9&&day<31)||(month==11&&day<31)){
                    break;
                }else{
                    System.out.println("日期有误,重新输入");
                    day=sc.nextInt();
                }
            }
        }
        int[] run={31,29,31,30,31,30,31,31,30,31,30,31};
        //用于表示闰年每个月天数
        int[] pin={31,28,31,30,31,30,31,31,30,31,30,31};
        //用于表示平年每月天数
        int sum=0;
        //记录这一年的第几天
        if(pd){
            for(int i=0;i<(month-1);i++){
                sum+=run[i];
                //加入每个月的天数
            }
            sum+=day;
            //加入日期数
        }else{
            for(int i=0;i<(month-1);i++){
                sum+=pin[i];
            }
            sum+=day;
        }
        System.out.println("这是这一年的第"+sum+"天");
    }
    public static boolean panDuan(int year){
        if((year%4==0)&&(year%100!=0)||(year%400==0)){
            return true;
        }
        return false;
    }
}

运行结果

输入年份
2022
输入月份
14
月份有误,重新输入
2
输入日期
29
日期有误,重新输入
28
这是这一年的第59
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值