2021-1-19蓝桥杯java-入门训练

一、Fibonacci数列

在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

1.类名称必须采用public class Main方式命名

2.int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次 方到2的31次方-1),一个字节占8位,也就是32位。所以注意题目给出的参数范围是否在int的取值范围内,或者当参数运算后的值是否在int的取值范围。

3.输入输出
格式1:Scanner sc = new Scanner (new BufferedInputStream(System.in))
格式2:Scanner sc = new Scanner (System.in);
在读入数据量大的情况下,格式1的速度会快些。

读一个整数: int n = sc.nextInt();
读一个字符串:String s = sc.next();
读一个浮点数:double t = sc.nextDouble();
读一整行: String s = sc.nextLine();

判断是否有下一个输入可以用sc.hasNext()或sc.hasNextInt()或sc.hasNextDouble()或sc.hasNextLine()

4.本题编程技巧
要计算只包含加法、减法和乘法的整数表达式除以正整数n的余数,可以在每步计算之后对n取余,结果不变。

import java.util.Scanner;
public class Main{
	public static void main(String[] argd){
		Scanner s=new Scanner(System.in);
		int n=s.nextInt();
		int[]f=new int[1000000];
		f[0]=1;
		f[1]=1;
		for(int i=2;i<n;i++){
			f[i]=(f[i-1]+f[i-2])%10007;
		}
		System.out.println(f[n-1]);
	}
}

二、圆的面积

在本题中,输入是一个整数,但是输出是一个实数。
对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。
实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。
本题对精度要求较高,请注意π的值应该取较精确的值。你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。

1.DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置,如果不存在则显示为空。

2.在Java语言中,主要是利用final关键字(在Java类中灵活使用static关键字)来定义常量。常量被设定后,一般情况下就不允许再进行更改。如可以利用如下的形式来定义一个常量:final double PI=3.1315。

3.String shuchu = df.format(area);格式化一个 double 值,以生成一个字符串。

import java.text.DecimalFormat;
import java.util.Scanner;

/*给定圆的半径r,求圆的面积。*/
public class Main {
	//定义pi
	public static final double PI=3.14159265358979323;
	public static void main(String[] args) {
		//接收控制台的输入
		Scanner sc=new Scanner(System.in);
		//取出输入的数字
        int r=sc.nextInt();
        //计算面积
        double area=PI*(r*r);
        //创建DecimalFormat类来格式化面积
        DecimalFormat df=new DecimalFormat("0.0000000");
        //输出语句
        System.out.println(df.format(area));
	}

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值