我们需要注意的一点就是判断n奇数还是偶数
很简单我们直接用结论
其实推导也非常简单,我简单用分部积分推算一遍
将其看成一个数列,逐项相乘就可得到sinx的n阶积分
所以程序的事情就非常简单了,我简单演示C++代码
#include<iostream> #include<string> #define PI 3.14 using namespace std; double result(int n){ double temp,outcome=1; temp=n; if(n==1){ outcome=1; } else if(n%2==0){ while(n>=2){ temp=(n*1.0-1)/n; outcome*=temp; --n; } outcome*PI/2; } else{ while(n>=3){ temp=(n*1.0-1.0)/n; outcome*=temp; --n; } outcome*1; } return outcome; } int main(){ int n,flag=0; bool test=true; string s; cout<<"计算n阶sin(x))从0到PI/2的积分"<<"\n"<<"输入格式:输入sin(x),再换行输入一个数n:"<<endl; while(test) { cin>>s; cin>>n; if(s=="sin(x)"){ flag=1; } switch (flag) { case 1: cout<<"sin(x)的"<<n<<"阶从0-PI/2的积分:"<<result(n)<<endl; break; default: cout<<"输入错误"; break; } cout<<"继续计算输入数字1,结束输入数字0"<<endl; int demo; cin>>demo; if(demo!=1&&demo!=0){ cout<<"指令错误重新输入1或者0"<<endl; cin>>demo; } if(demo==1){ test=true; cout<<"开始输入:"<<endl; } if(demo==0){ test=false; } } return 0; }
完美直接运行!
奈斯!!!