Java编程练习2

7-1 sdut-数据类型-1-求班级男女生比例

题目
新的一学期开始,HH同学在学校认识了很多的同学,但是他却不知道自己本班男生和女生的比例是多少。对于学过编程的你一定简单极了吧。你能帮他算出男生女生的百分比吗?

输入格式:
每行输入正整数男生和女生的数目n,m(0<n,m<1000)。

输出格式:
输出男生女生所占的比例(保留小数点后两位)。

输入样例1:
20 30
输出样例1:
40.00% 60.00%
输入样例2:
10 10
输出样例2:
50.00% 50.00%
输入样例:
50 0
输出样例:
100.00% 0.00%
正确答案

import java.util.Scanner;

public class Main {
		public static void main(String[] args) {
            Scanner sc =new Scanner(System.in);
            int a=sc.nextInt();
            int b=sc.nextInt();
            double n,m;
            n=(double)100*a/(a+b);
            m=(double)100*b/(a+b);
            System.out.printf("%.2f%% %.2f%%",n,m);
	}
}

7-2 sdut-数据类型-2 应用勾股定理,了解世界灿烂文明

题目
意义:勾股定理是历史上第一个把数与形联系起来的定理,导致了无理数的发现,引起第一次数学危机,大大加深了人们对数的理解。勾股定理是欧氏几何的基础定理,不仅在几何学中是一颗光彩夺目的明珠,被誉为“几何学的基石”,而且在高等数学和其他科学领域也有着广泛的应用。1971年5月15日,尼加拉瓜发行了一套题为“改变世界面貌的十个数学公式”邮票,这十个数学公式由著名数学家选出的,勾股定理是其中之首。

简史:
在中国,公元前十一世纪,数学家商高(西周初年人)就提出“勾三、股四、弦五”。编写于公元前一世纪以前的《周髀算经》中记录着商高与周公的一段对话。商高说:“……故折矩,勾广三,股修四,经隅五。”意为:当直角三角形的两条直角边分别为3(勾)和4(股)时,径隅(弦)则为5。以后人们就简单地把这个事实说成“勾三股四弦五”,根据该典故称勾股定理为商高定理。
公元三世纪,三国时代的赵爽对《周髀算经》内的勾股定理作出了详细注释,记录于《九章算术》中“勾股各自乘,并而开方除之,即弦”,赵爽创制了一幅“勾股圆方图”,用数形结合得到方法,给出了勾股定理的详细证明。后刘徽在刘徽注中亦证明了勾股定理。
在中国清朝末年,数学家华蘅芳提出了二十多种对于勾股定理证法。

在国外,远在公元前约三千年的古巴比伦人就知道和应用勾股定理,他们还知道许多勾股数组。美国哥伦比亚大学图书馆内收藏着一块编号为“普林顿322”的古巴比伦泥板,上面就记载了很多勾股数。古埃及人在建筑宏伟的金字塔和测量尼罗河泛滥后的土地时,也应用过勾股定理。
公元前六世纪,希腊数学家毕达哥拉斯证明了勾股定理,因而西方人都习惯地称这个定理为毕达哥拉斯定理。
公元前4世纪,希腊数学家欧几里得在《几何原本》中给出一个证明。
1940年《毕达哥拉斯命题》出版,收集了367种不同的证法。

定义:在平面上的一个直角三角形中,两个直角边边长的平方加起来等于斜边长的平方。如果设直角三角形的两条直角边长度分别是和,斜边长度是,那么可以用数学语言表达:

a
2
+b
2
=c
2

请编程程序,实现如下功能:输入直接三角形的两个直角边的边长,求它们的斜边边长,结果保留2位小数。

提示:在Java中利用Math类的方法——**Math.sqrt()**求平方根。

java.lang.Math.sqrt(double a) 返回一个double值的正平方根。

输入格式:
输入有若干行,每行有2个数值,分别表示直角三角形的两个直角边长度,用空格分隔。

输出格式:
对应每行输入数据,输出直角三角形的斜边长度,结果保留2位小数。

输入样例:
3 4
2.3 3
5 6
10 12
输出样例:
在这里给出相应的输出。例如:

5.00
3.78
7.81
15.62
正确答案

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNext()) {
            double a=scanner.nextDouble();
            double b=scanner.nextDouble();
            System.out.printf("%.2f\n", Math.sqrt(a*a+b*b));
        }
    }
}

7-3 sdut-数据类型-3 计算飞行员到最近机场的距离

题目
当飞机上的仪器出故障时,飞行员常常得估计他们到最近机场的距离。他们的方法是利用他们的高度和他们和机场之间的角度的估计。编写一个程序,帮助飞行员进行计算。

程序应以高度和角度作为输入,输出估计距离。公式为:距离distance=高度hight/ tan(degree)。

说明:tan(degree)为角度为degree的正切值。

提示:在JAVA中,Math类的静态方法tan(double degree),用于计算弧度为degree的角度的正切值。

在C语言中,函数名: tan, 头文件:<math.h>, 函数原型: double tan(double x); 功能: 正切函数,参 数:double x 为要操作的弧度,返回值:返回x弧度的正切值。

输入格式:
输入数据有多行。

每行为一组输入,分别是高度、角度。角度介于(0,PI/2)区间。

输出格式:
对应每行输入,求飞行员到机场的距离,保持2位小数。

输入样例:
在这里给出一组输入。例如:

1033102 0.15
10210 0.8
104320 0.7
13200 1.524
84535300 0.523
输出样例:
在这里给出相应的输出。例如:

6835613.92
9916.10
123853.07
618.16
146622115.56
正确答案

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNext()){
            //scanner.hasNext()判断系统输入是否结束
            double h=scanner.nextDouble();
            double d=scanner.nextDouble();
            double distance=h/Math.tan(d);
            System.out.printf("%.2f\n",distance);
        }
    }
}

7-4 sdut-数据类型-4 第七次全国人口普查数据分析

题目
第七次全国人口普查结果公布!

数据来源: http://www.chinanews.com/gn/2021/05-11/9474601.shtml

我国以2020年11月1日零时为标准时点,开展了第七次全国人口普查,主要目的是全面查清我国人口数量、结构、分布等方面情况,为完善我国人口发展战略和政策体系、制定经济社会发展规划、推动高质量发展提供准确统计信息支持。

截至2021年5月11日,国家统计局发布普查数据。现抽取部分数据进行分析。请根据每一步的要求,进行相应的计算并输出。每一类数据占一行,数据之间有一个空格作分隔。

(一)人口总量。全国人口共141178万人,2010年(第六次全国人口普查数据)的133972万人相比,增加 a1=? 万人,增长率为 a2=?% ,年平均增长率为 a3=? %。 (其中:a1为整数,a2和a3各保留2位小数)

(二)户别人口。全国共有家庭户49416万户,家庭户人口为129281万人;平均每个家庭户的人口为 b1=?人, 2010年为 3.10人,减少 b2=? 人。(集体户2853万户,集体户人口为11897万人。) (其中:b1和b2各保留2位小数)

(三)年龄构成。0—14岁人口为25338万人,占 c1=? %;15—59岁人口为89438万人,占 c2=? %;60岁及以上人口为26402万人,占 c3=?%。(其中:c1、c2、c3 各保留2位小数)

(四)受教育程度人口。具有大学文化程度的人口为21836万人,占总人口的d1=? %。(d1保留2位小数)

输入格式:
输入数据有4行。第1、2、3、4行的数据含义为如下信息的数量(单位为:万人),若未指定时间即为2020年11月1日标准时点的数据。数据之间用空格作分隔符。

全国总人口 2010年全国总人口

总家庭户 家庭户总人数 2010年家庭户平均人数

0—14岁人口 15—59岁人口 60岁及以上人口

具有大学文化程度的人口

输出格式:
输出数据有4行。第1、2、3、4行的数据含义为如下信息,,若未指定时间即为2020年11月1日标准时点的数据。数据之间用1个空格作分隔符。

全国总人口比2010年增加数量(a1) 增长率(a2%) 年平均增长率( a3%)

平均每个家庭户的人口(b1) 比2010年减少人数(b2)

0—14岁人口占比(c1%) 15—59岁人口占比(c2%) 60岁及以上人口占比(c3%)

具有大学文化程度的人口占比(d1%)

(说明:a1为整数,a2、a3、b1、b2、c1、c2、c3、d1均保留2位小数;如果为增长率或变化率,均以百分数形式展示数据)

输入样例:
141178 133972
49416 129281 3.10
25338 89438 26402
21836
输出样例:
7206 5.38% 0.54%
2.62 0.48
17.95% 63.35% 18.70%
15.47%
正确答案

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Scanner in = new Scanner(System.in);
		double a1=in.nextDouble();
		double a2=in.nextDouble();
		double b1=in.nextDouble();
		double b2=in.nextDouble();
		double b3=in.nextDouble();
		double c1=in.nextDouble();
		double c2=in.nextDouble();
		double c3=in.nextDouble();
		double d1=in.nextDouble();
		System.out.printf("%.0f %.2f%% %.2f%%\n",a1-a2,(a1-a2)/a2*100,(a1-a2)/a2*100/10);
		System.out.printf("%.2f %.2f\n",b2/b1,b3-b2/b1);
		System.out.printf("%.2f%% %.2f%% %.2f%%\n",c1/a1*100,c2/a1*100,c3/a1*100);
		System.out.printf("%.2f%%\n",d1/a1*100);
	}

}

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漠–

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值