题目是,现有数学算式1+1/3+1/5+1/7……,计算直到最后一项小于10的-4次方时,算式和的近似值。
想了想,题目要求,应该包含最后一个小于10的-4次方的数字,所以应该用do while才对。
#include<iostream> using namespace std; int main() { double a,b; //a为不停的增加的分数的分母,b为数列和 a = 1; b = 0; //即当1/a小于10的-4次方时,停止while循环 do { b = (1/a) + b; //a初始是1,b初始是0,b是之前的数列之和(即旧b)和最新的a之和。 a = a + 2; //a作为分母,每次都比之前大2 } while (1 / a > 0.0001); cout << "a= " << a << endl; cout << "b= " << b << endl; //最后输出a和b的值,由于精度问题,所以…… system("pause"); return 0; }
输出答案是,a为10001,b为5.24035