#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; 11
#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、 m2和m3均为回文数。 –回文:各位数字左右对称的整数。 例如: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;
#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=”〈Km; cout〈”m*m=”〈<m*m; cout〈<”m*m*m=" <mmm<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