第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 圆的面积
前言
最近的一些文章都可能会很碎,写到哪里是哪里,过一阵子会具体的整理一遍,这里其它的类型题先往后排一排,因为蓝桥最后考的也就是对题目逻辑的理解能力,也就是dp分析能力了,所以就主要目标定在这里,最近的题目会很散,很多,基本上都是网罗全网的一些dp练习题进行二次训练,准备比赛的学生底子薄的先不建议看啊,当然,脑子快的例外,可以直接跳过之前的一切直接来看即可,只需要你在高中的时候数学成绩还可以那就没啥问题,其实,dp就是规律总结,我们只需要推导出对应题目的数学规律就可以直接操作,可能是一维数组,也可能是二维数组,总体来看二维数组的较多,但是如果能降为的话建议降为,因为如果降为起来你看看时间复杂度就知道咋回事了,那么在这里祝大家能无序的各种看明白,争取能帮助到大家。
基础练习 圆的面积
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
给定圆的半径r,求圆的面积。
输入格式
输入包含一个整数r,表示圆的半径。
输出格式
输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。
说明:在本题中,输入是一个整数,但是输出是一个实数。
对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。
实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。
样例输入
4
样例输出
50.2654825
数据规模与约定
1 <= r <= 10000
提示
本题对精度要求较高,请注意π的值应该取较精确的值。你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。
题解:这个题目考核的是我们对于高精度浮点数的计算方式,但是Python语言中就没有这个东西,故而我们用Python语言很明显的就天生占优势呢。
C语言
只需要根据公式写就行,对于浮点数的小数点我们做四舍五入计算就OK、
#include <stdio.h> #include <math.h> int main() { int r; double s, PI; scanf("%d", &r); PI = atan(1.0) * 4; s = PI * r * r; printf("%.7lf", s); return 0; }
C++语言
操作上几乎没有任何变化,毕竟是C的增强版本而已,又不是飞跃。
#include <stdio.h> #include <math.h> int main() { int r; double s, PI; scanf("%d", &r); PI = atan(1.0) * 4; s = PI * r * r; printf("%.7lf", s); return 0; }
Java语言
Java语言为了做浮点数问题不出错故而只能选用BigDecimal来处理。
import java.math.BigDecimal; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String n = sc.next(); sc.close(); BigDecimal bg = new BigDecimal(n); BigDecimal value = bg.multiply(bg.multiply(new BigDecimal(Math.PI))).setScale(7, BigDecimal.ROUND_HALF_UP); System.out.println(value); } }
Python语言
其实使用Python语言解决这个问题就跟扛着东风打小鸟一样。so easy。
import math r=float(input()) print('{:.7f}'.format(3.14159265358979323*r*r))
总结
浮点数运算的时候经常会出现计算错误,出现一堆零或者一堆九的情况,其实很烦,我们需要根据不同语言的不同特性来解决这个问题,记住,我们是知识的搬运工,不是知识的创造者,如果遇到不会的地方一定要大胆的去搜索,去归纳自己的知识体系
没有什么不付出就能拿到的结果,我们都是在负重前行,最终结果与自身先天的脑力有一定的关系,但是还是有很大一部分看自己后天的努力,其实从报名到比赛也就5个月左右,真正刷题的事件也就2个月,2个月回忆一下你真正的认真刷过题吗,如果你真的用尽所有的精力去努力了,那么我相信你最终的成绩一定会让你满意的,加油。