C++求sinx的n阶积分从0-PI/2

简介: C++求sinx的n阶积分从0-PI/2

我们需要注意的一点就是判断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;
}

完美直接运行!

奈斯!!!

目录
相关文章
|
5天前
|
C++
【C++】日期类Date(详解)②
- `-=`通过复用`+=`实现,`Date operator-(int day)`则通过创建副本并调用`-=`。 - 前置`++`和后置`++`同样使用重载,类似地,前置`--`和后置`--`也复用了`+=`和`-=1`。 - 比较运算符重载如`&gt;`, `==`, `&lt;`, `&lt;=`, `!=`,通常只需实现两个,其他可通过复合逻辑得出。 - `Date`减`Date`返回天数,通过迭代较小日期直到与较大日期相等,记录步数和符号。 ``` 这是236个字符的摘要,符合240字符以内的要求,涵盖了日期类中运算符重载的主要实现。
|
8天前
|
存储 编译器 C语言
【C++航海王:追寻罗杰的编程之路】类与对象你学会了吗?(上)
【C++航海王:追寻罗杰的编程之路】类与对象你学会了吗?(上)
11 2
|
7天前
|
C++
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
11 0
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
|
8天前
|
存储 编译器 C++
【C++ 初阶路】--- 类和对象(下)
【C++ 初阶路】--- 类和对象(下)
8 1
|
2天前
|
编译器 C语言 C++
|
2天前
|
编译器 C++
【C++】详解初始化列表,隐式类型转化,类静态成员,友元
【C++】详解初始化列表,隐式类型转化,类静态成员,友元
|
5天前
|
存储 编译器 C++
【C++】类和对象④(再谈构造函数:初始化列表,隐式类型转换,缺省值
C++中的隐式类型转换在变量赋值和函数调用中常见,如`double`转`int`。取引用时,须用`const`以防修改临时变量,如`const int& b = a;`。类可以有隐式单参构造,使`A aa2 = 1;`合法,但`explicit`关键字可阻止这种转换。C++11起,成员变量可设默认值,如`int _b1 = 1;`。博客探讨构造函数、初始化列表及编译器优化,关注更多C++特性。
|
5天前
|
编译器 C++
【C++】类和对象④(类的默认成员函数:取地址及const取地址重载 )
本文探讨了C++中类的成员函数,特别是取地址及const取地址操作符重载,通常无需重载,但展示了如何自定义以适应特定需求。接着讨论了构造函数的重要性,尤其是使用初始化列表来高效地初始化类的成员,包括对象成员、引用和const成员。初始化列表确保在对象创建时正确赋值,并遵循特定的执行顺序。
|
5天前
|
C语言 C++
【C++】日期类Date(详解)③
该文介绍了C++中直接相减法计算两个日期之间差值的方法,包括确定max和min、按年计算天数、日期矫正及计算差值。同时,文章讲解了const成员函数,用于不修改类成员的函数,并给出了`GetMonthDay`和`CheckDate`的const版本。此外,讨论了流插入和流提取的重载,需在类外部定义以符合内置类型输入输出习惯,并介绍了友元机制,允许非成员函数访问类的私有成员。全文旨在深化对运算符重载、const成员和流操作的理解。
|
5天前
|
定位技术 C语言 C++
C++】日期类Date(详解)①
这篇教程讲解了如何使用C++实现一个日期类`Date`,涵盖操作符重载、拷贝构造、赋值运算符及友元函数。类包含年、月、日私有成员,提供合法性检查、获取某月天数、日期加减运算、比较运算符等功能。示例代码包括`GetMonthDay`、`CheckDate`、构造函数、拷贝构造函数、赋值运算符和相关运算符重载的实现。