考察数据类型的掌握---题目1166:迭代求立方根 (2009年北京航空航天大学计算机研究生机试真题)


题目描述:


立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 +
x/(3*y(n)*y(n)),其中y0=x.求给定的x经过n次迭代后立方根的值。



输入:

输入有多组数据。
每组一行,输入x n。



输出:

迭代n次后的立方根,double精度,保留小数点后面六位。



样例输入:

3000000 28


样例输出:

144.224957

#include
"stdio.h"

int
main(int argc, char* argv[])

{

    long n;

    double x;

    while(scanf("%lf%d",&x,&n)!=EOF){

        double temp=x;

        while(n>0){

             x = x*2/3 + temp/(3*x*x);    // y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n))

             n--;

        }

        printf("%.6lf\n",x);

    }

    return 0;

}

归纳:printf的%f说明符的确既可以输出float型又可以输出double型。根据“默认参数提升”规则float型会被提升为double型。因此printf()只会看到双精度数。对于scanf,它接受指针,没有类似的类型提升。向float存储和向double存储大不一样,因此,scanf区别%f和%lf。


考察数据类型的掌握---题目1166:迭代求立方根 (2009年北京航空航天大学计算机研究生机试真题),布布扣,bubuko.com

时间: 2024-08-23 09:46:42

考察数据类型的掌握---题目1166:迭代求立方根 (2009年北京航空航天大学计算机研究生机试真题)的相关文章

九度机试 题目1165:字符串匹配 2008年北京航空航天大学计算机研究生机试真题

题目1165:字符串匹配 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2497 解决:858 题目描述: 读入数据string[ ],然后读入一个短字符串.要求查找string[ ]中和短字符串的所有匹配,输出行号.匹配字符串.匹配时不区分大小写,并且可以有一个用中括号表示的模式匹配.如"aa[123]bb",就是说aa1bb.aa2bb.aa3bb都算匹配. 输入: 输入有多组数据. 每组数据第一行输入n(1<=n<=1000),从第二行开始输入n个字符串(

题目1117:整数奇偶排序 (2008年北京大学图形实验室计算机研究生机试真题)

题目描述: 输入10个整数,彼此以空格分隔.重新排序以后输出(也按空格分隔),要求:1.先输出其中的奇数,并按从大到小排列:2.然后输出其中的偶数,并按从小到大排列. 输入: 任意排序的10个整数(0-100),彼此以空格分隔. 输出: 可能有多组测试数据,对于每组数据,按照要求排序后输出,由空格分隔. 样例输入: 4 7 3 13 11 12 0 47 34 98 样例输出: 47 13 11 7 3 0 4 12 34 98 提示: 1. 测试数据可能有很多组,请使用while(cin>>

题目1096:日期差值 (2009年上海交通大学计算机研究生机试真题)

题目描述: 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天 输入: 有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD 输出: 每组数据输出一行,即日期差值 样例输入: 20110412 20110422 样例输出: 11 代码如下: #include "stdio.h" int dayOfMonth[13][2]={ 0,0, 31,31, 28,29, 31,31, 30,30, 31,31, 30,30, 31,31, 31,

题目1128:求平均年龄

题目描述: 班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位. 输入: 第一行有一个整数n(1<= n <= 100),表示学生的人数.其后n行每行有1个整数,取值为15到25. 输出: 可能有多组测试数据,对于每组数据, 输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位. 样例输入: 2 18 17 样例输出: 17.50 提示: 要输出浮点数.双精度数小数点后2位数字,可以用下面这种形式: printf("%.2f&qu

九度oj 题目1046:求最大值

题目1046:求最大值 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:11782 解决:4789 题目描述: 输入10个数,要求输出其中的最大值. 输入: 测试数据有多组,每组10个数. 输出: 对于每组输入,请输出其最大值(有回车). 样例输入: 10 22 23 152 65 79 85 96 32 1 样例输出: max=152 1 #include <iostream> 2 #include <vector> 3 #include <algorithm&g

求立方根算法--个人对立方根算法的穷举和优化

在hpe实训中心学习,遇到了求立方根的题目,在此做一下算法笔记, 分析过程: 数n的立方根就是n=i*i**i;所以我们会优先想到一下方法. static double g32(double n){ //简易版 double i = 0, k = 0.0005f; if (n < 0) { //输入负数判断 k /= -1; } do{ i+=k; }while(abs(i*i*i)<abs(n)); //abs为自己写的求绝对值方法 return i; } 可以看出此方法的求解精度为0.00

求立方根

求解立方根或者是平方根甚至是N次方根,均可用牛顿迭代法求解. 牛顿迭代法如下所示: #include <iostream> #include <fstream> #include <string> #include <vector> #include <algorithm> #include <cmath> using namespace std; double Lifanggen(double src) { double curx,

1054. 求平均值 (20)-PAT乙级真题

今天刚刚到学校,2017年学习正式开始了,今天看到了浙大的<数据结构>这学期又要开课了,决定一定要跟着学习一遍:在大学生mooc网上学习:http://www.icourse163.org/course/zju-93001#/info :然后就是跟着<算法之美>也要同步看完. 然后就在PAT上随便做一道题,这是第一次通过AC,发现了两个比较好的博客主页:http://www.liuchuo.net/  和  https://www.joyhwong.com/   都总结了刷题的过程

九度oj 题目1085:求root(N, k) 清华2010年机试题目

题目描述: N<k时,root(N,k) = N,否则,root(N,k) = root(N',k).N'为N的k进制表示的各位数字之和.输入x,y,k,输出root(x^y,k)的值 (这里^为乘方,不是异或),2=<k<=16,0<x,y<2000000000,有一半的测试点里 x^y 会溢出int的范围(>=2000000000) 输入: 每组测试数据包括一行,x(0<x<2000000000), y(0<y<2000000000), k(