基础练习 圆的面积
问题描述
给定圆的半径r,求圆的面积。
输入格式
输入包含一个整数r,表示圆的半径。
输出格式
输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。
说明:在本题中,输入是一个整数,但是输出是一个实数。
对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。
实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。
解题思路
java四舍五入时保留指定小数位数
-
double f = 3.1516; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 输出结果f1为 3.15;
解读:
public BigDecimal setScale(int newScale, int roundingMode) //int newScale 为小数点后保留的位数, int roundingMode 为变量进行取舍的方式;
BigDecimal.ROUND_HALF_UP 属性含义为为四舍五入 -
String format = new DecimalFormat("#.0000").format(3.1415926); System.out.println(format); 输出结果为 3.1416
解读:
#.00 表示两位小数 #.0000四位小数 以此类推… -
double num = 3.1415926; String result = String.format("%.4f", num); System.out.println(result); 输出结果为:3.1416
解读:
%.2f 中 %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型。代码实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int r = scanner.nextInt();
if (r >= 1 && r <= 10000) {
double pi = Math.PI;
double s = pi * r * r;
System.out.printf("%.7f", s);
}
}
}
视频学习 整数的基本性质与运用
学习心得
-
素数,整除,余数
-
最大公约数,最小公倍数 = a * b / gcd(a, b)
public static int gcd(int a, int b) {//最大公约数 递归方式
if (a == 0) return b;
return gcd(b%a, a);
}
-
(a+b)%p = (a%p + b%p)%p
(a*b)%p = (a%p) * (b%p) % p
对应练习 查找整数
Description
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
Input
输入描述:
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输入样例:
6
1 9 4 8 3 9
9
Output
输出描述:
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
输出样例:
2
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int a[] = new int [n] ;
for(int i = 0 ; i < n ; i++)
a[i] = scanner.nextInt() ;
int k = scanner.nextInt() ;
for(int i = 0 ; i < n ; i++) {
if(a[i] == k) {
System.out.println(i+1);
break;
}
if(i == n - 1)
System.out.println(-1);
}
scanner.close();
}
}