#include <iostream> using namespace std; double arctan(double x){ double sqr xx; double e x; double r =0; int i 1; while (e /i 1e-15){ double f =e /i; r=(i%4=1)?r+f:r-f; e=e sqr; i+=2; return r;
#include <iostream> using namespace std; double arctan(double x) { double sqr = x * x; double e = x; double r = 0; int i = 1; while (e / i > 1e-15) { double f = e / i; r = (i % 4 == 1) ? r + f : r - f; e = e * sqr; i += 2; } return r; } 11
int main(){ double a 16.0 arctan(1 5.0); double b 4.0 arctan(1 239.0); /注意:因为整数相除结果取整,如果参数写 1/5,1/239,结果就都是0 cout <"PI ="<a b <endl; return 0; 运行结果: PI=3.14159 12
int main() { double a = 16.0 * arctan(1 / 5.0); double b = 4.0 * arctan(1 / 239.0); //注意:因为整数相除结果取整,如果参数写 1/5,1/239,结果就都是0 cout << "PI = " << a - b << endl; return 0; } 运行结果: PI=3.14159 12
C++语言程序设计 清华大学郑莉 函 例3-4 数 的 ● 寻找并输出11~999之间的数m,它满足m、 声 m和m3均为回文数。 明 回文:各位数字左右对称的整数。 例如:11满足上述条件 与 112=121,113-=1331。 使 。分析: 用 10取余的方法,从最低位开始,依次取出该数 的各位数字。按反序重新构成新的数,比较与 原数是否相等,若相等,则原数为回文。大
C++语言程序设计 清华大学 郑莉 13 例3-4 ⚫ 寻找并输出11~999之间的数m,它满足m、 m 2和m 3均为回文数。 –回文:各位数字左右对称的整数。 例如:11满足上述条件 112=121,113=1331。 ⚫ 分析: –10取余的方法,从最低位开始,依次取出该数 的各位数字。按反序重新构成新的数,比较与 原数是否相等,若相等,则原数为回文。 函 数 的 声 明 与 使 用
#include <iostream> using namespace std; /判断n是否为回文数 bool symm (unsigned n){ unsigned i n; unsigned m 0; while (i 0){ m=m*10+i%10; i/=10; return m =n; 14
#include <iostream> using namespace std; //判断 n是否为回文数 bool symm(unsigned n) { unsigned i = n; unsigned m = 0; while (i > 0) { m = m * 10 + i % 10 ; i /= 10; } return m == n; } 14
int main() for(unsigned m 11;m 1000;m++) if (symm (m)&&symm (mm)&& symm(mmm)){ cout<"m=”〈<m; cout〈<”m*m=”<父m*m; cout〈<”m*m*m=” mm *m <endl; return 0; 15
int main() { for(unsigned m = 11; m < 1000; m++) if (symm(m) && symm(m * m) && symm(m * m * m)) { cout << "m = " << m; cout << " m * m = " << m * m; cout << " m * m * m = " << m * m * m << endl; } return 0; } 15