题目一:
编写求Π的程序,公式 Π=16arctan(1/5)-4arctan(1/239),其中arctanx = x -x3/3+x5/5+...,知道级数某项绝对值不大于10-15次方为止。
#include <iostream>
#include <cmath>
using namespace std;
double arctan(double x)
{
double art = 0;
double sqr = x * x;
int i=1;//分母
double e=x;//分子
while (e/i>1e-15)
{
art = (i % 4 == 1) ? art + e / i : art - e / i;//条件表达式判断正负
e = e * sqr;
i = i + 2;
}
return art;
}
int main()
{
double a = 0 , b = 0;
a = 16.0 * arctan(1 / 5.0);
b = 4.0 * arctan(1 / 239.0);
cout << "派的值为:" << a - b;
}
题目二:
寻找并输出11~999之间的数m,它满足m,m2次方,m3次方均为回文数。
#include <iostream>
#include <cmath>
using namespace std;
bool isHui(int x)
{
int i = x;//原本的数
int m = 0;
while (i > 0)//将数逆序
{
m = m * 10 + i % 10;
i = i / 10;
}
return m == x;
}
int main()
{
for (int i= 11; i <= 999; i++)
{
if (isHui(i) && isHui(i*i) && isHui(i*i*i))
{
cout << i << "是回文数"<<" ";
}
}
}