东南大学机械学院C++第一学期上机(作业八之后).docVIP

  • 14
  • 0
  • 约1.32万字
  • 约 20页
  • 2019-11-27 发布于湖北
  • 举报

东南大学机械学院C++第一学期上机(作业八之后).doc

八 1.设有如下求近似值的公式: 设计算法,给定一个x,求f(x)的近似值,要求单项误差不大于0.0001。 提示: 需要使用 fabs函数求绝对值,fabs函数需要包含数学函数头文件, #include “math.h” 2.输出100-200之间的质数,输出格式为8个一行; 3.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,28=1+2+4+7+14因此6,28是“完数”。编程序找出1000之内的所有的完数并输出。 4. 设计一个计算n的阶乘的函数fac,参数为 n,返回值为整数。 完成后,在主程序中输入一个整数,然后调用该函数,并输出结果。 5. 把第一题转化成函数,即设计一个函数f, 参数是实数,返回值也是也实数。在主程序中输入x,然后调用函数之后输出。 1、#include iostream.h #include math.h void main(void) { double f=1,sum=0,x; int n=1; cout请输入一个x的值:; cinx; while(fabs(f)0.0001) { sum+=f; f=-f*x*x/2/n/(2*n-1); n++; } coutf(x)的近似值为:sum\n; } 2、#include iostream.h #include math.h void main(void) { int m,k,i,n=0; for(m=101;m200;m=m+2) { k=sqrt(m); for(i=2;i=k;i++) if(m%i==0) break; if(i==k+1) { coutm\t; n++; } if(n%8==0) cout\n; } } 3、#include iostream.h void main (void) { int sum; cout1000之内的所有完数为:; for(int i=1;i=1000;i++) { sum=0; for(int j=1;ji;j++) if(i%j==0) sum+=j; if(i==sum) couti\t; } } 4、#include iostream.h int fac(int n) { int m=1; for(int i=1;i=n;i++) m=m*i; return m; } void main(void) { int n; cout请输入一个n的值:; cinn; coutn的阶乘为:fac(n)\n; } 5、#include iostream.h #include math.h double f(int x) { double m=1,sum=0; int i=1; while(fabs(m)0.0001) { sum+=m; m=-m*x*x/2/i/(2*i-1); i++; } return sum; } void main(void) { int x; cout请输入一个x的值:; cinx; coutf(x)的近似值为:f(x)\n; } 第9周上机题目: (1) 构造递归函数与程序,把输入的一个十进制的数字,正确的输出转化为2进制的数字。 (2) 写出 斐波那契级数前20项计算的 递归和递推的函数与程序; (3) 要求:设计一个函数int check(int m),功能是提取m中的最高位数字和最低位数字,检查二者是否相同,若是则返回1,否则返回0。在主函数能够依次输入20个数,然后调用所设计的函数,输出多少个数是高位与低位相同。 (4)定义一个函数long invers(long x),形式参数x为一个6位整数,函数功能是取x的高3位数(赋给h)和低3位各位数字(可从高位到低位依次存入变量a、b和c),将a、b和c逆序组合为一个整数t,计算h+t并将结果返回。 例如:x=123456,h=123,t=654。 (5)、利用级数展开式计算: (50分) f(x)= (n≥1) 其中:g(m , x)=(1+2+3+…+m)*x 【要求】 (1) 定义函数double g(int m, double x)用于计算g(m , x)。 (2) 定义函数double f(…)用于计算f(x),其中应调用函数g( )。 (3) 主函数:从键盘输入x值(-1x≤1),调用函数f( )计算当n=12时的f(x)值,输出计算结果。输出格式为f (x值) =

文档评论(0)

1亿VIP精品文档

相关文档