c++一些题目

来源:百度知道 编辑:UC知道 时间:2024/07/04 09:10:50
1.编写使用梯形法计算定积分的程序.被积函数可取sin(x)+ex,积分区间〔1,3〕
2.用牛顿迭代法解方程xe(x)-1=0(提示:迭代公式为X,k+1=X,k-f(x)/f"(x) .迭代初值可取0.5)
3按正三角形的格式打印出杨辉三角中的各值
4.有N个整数,使其前面各数顺序向后移M个位置,最后M个数变成最前面的M个数
5.判断101~200之间有多少个素数,并输出所有素数.

因为水平有限 E的X次方只能e(x)代替的哈~~~~

第一题:
变量说明:dx是分成n分得小梯形的高,sum是求和结果即为积分结果,x是函数的变量,n是对定义域切分的份数。
使用方法:输入区间得分段段数,分得越多结果越精确.
源程序:
#include<iostream>
#include<cmath>
using namespace std;
void main(void)
{ const double lower=1,upper=3;
double sum=0,dx,x;
int section,n=0;
cout<<"请输入分段数(注意:分段数越大积分越精确):";
cin>>section;
dx=(upper-lower)/section;
x=lower;
for(n=0;n<section;n++)
{
sum=sum+(dx/2)*(sin(x)+sin(x+dx)+exp(x)+exp(x+dx));
x=x+dx;
}
cout<<"sin(x)+e^x在积分区间[1,3]的积分是"<<sum<<endl;
}

第二题:
变量说明:x2是初步估计的初始近似值,x1是经过若干次迭代之后的近似值。
使用方法:直接运算程序
源程序:
#include<iostream.h>
#include<math.h>
void main(void)
{float x1,x2=0.5;
do
{x1=x2;
x2=(float)x1-(x1*exp(x1)-1)/(exp(x1)+x1*exp(x1));
} while(fabs(x2-x1)>pow(10,-5));