圆的周长和面积 计算前n项的和
7-3 圆的周长和面积
请编写程序,输入圆的半径 r,计算并输出三角形的周长 p 和面积 a。
输入格式:
r
输出格式:
p a
输入样例:
2.8
输出样例:
17.5929 24.6301
要求:输出 4 位小数(末位四舍五入)。
解题思路:
1.根据读入的半径,通过圆的求周长和面积公式进行计算
2.一开始π的值我设置为3.1415926,但是后面两个测试点一直通过不了,以为是四舍五入的问题,但是修改后测试点依然无法通过,于是考虑到是否是π的值的问题,将其设置为3.14159265358979后测试点通过
3.四舍五入的方法:(保留四位小数)
(1)area = (int) (area*10000.0+0.5)/10000.0;
(2)引入math.h,使用round方法,如下
#include<stdio.h> #include <math.h> int main() { double r; double length = 0; double area = 0; scanf("%lf",&r); area = 3.14159265358979*r*r; length = 2*3.14159265358979*r; area = round(area*10000.0)/10000.0; length = round(length*10000.0)/10000.0; printf("%.4f %.4f",length,area); return 0; }
7-4 计算前n项的和。
编程计算,其中n的值在程序运行时由键盘输入。
输入格式:
输入一个正整数。
输出格式:
输出一个浮点数。
输入样例:
在这里给出一组输入。例如:
10
输出样例:
在这里给出相应的输出。例如:
0.841471
解题思路:
1.通过观察算式,可以发现该式在n为奇数时为+,在n为偶数时为-,这一点可以通过-1的n-1次方实现,也就是pow(-1,n-1)
2.同时,可以发现分母是由(2n-1)!组成,可以通过循环算出(2n-1)!的结果,再用1/(2n-1)!,得到部分结果
3.因为该算式是进行到n,所以for循环的条件为for(int i=1;i<=n;i++)
#include<stdio.h> #include <math.h> int main() { int n; scanf("%d",&n); double result = 0; for(int i=1;i<=n;i++){ double sum = 1; for(int j=1;j<=(2*i-1);j++){ sum *= j; } result = result + pow(-1,i-1)*(1.0/sum); } printf("%f",result); return 0; }