問題:輸入一個數,用牛頓迭代法求平方根?
#include <iostream>
using namespace std;
double EPS = 0.0001; //用於控制計算精度
int main() {
//牛頓迭代法求輸入數的平方根
double a;
cin >> a; //輸入a,要求a的平方根
if(a >= 0) {
double x = a / 2, lastX = x + 1 + EPS; //確保能夠進行一次迭代
while(x - lastX > EPS || lastX - x > EPS) { //只要精度未達到要求,就繼續迭代
lastX = x;
x = (x + a / x) / 2;
}
cout << x;
}
else
cout << "It cant's be negative";
return 0;
}
附上一個一重for循環求解階乘的和問題。
1!+ 2!+ 3!+ 4!+ 5!+…+ n! = ???
#include <iostream>
using namespace std;
int main() {
//一重循環解決階乘的和
int n;
cin >> n;
int sum = 0;
int factorial = 1;
for(int i = 1; i <= n; i++) {
factorial *= i;
sum += factorial;
}
cout << sum << endl;
return 0;
}