1. 程式人生 > >大整數開方技巧

大整數開方技巧

題目描述:

輸出所有形如aabb的四位完全平方數(即前兩位數字相等,後兩位數字也相等)

分析:

floor(x)函式:返回不超過x的最大整數。 判斷條件:一個數開方後取整,如果平方還是它本身的話,證明是完全平方數。 注意: 大整數開方的時候,由於誤差的影響,整數1變成了0.999999999,這樣算得的結果就會是0而不是1,為了減小誤差影響,一般採用四捨五入的方法,即:floor(sqrt(x)+0.5) (小數部分為0.5的數也會受到浮點誤差的影響,等後面學習了之後再來更新)。

程式碼:

#include<iostream>
#include<string>
#include<cstring>
#include<Windows.h>
#include<cmath>
using namespace std;
int main()
{
	int a, b, n;
	for (int i = 1;i <= 9;i++)
	{
		for (int j = 0;j <= 9;j++)
		{
			n = 1100 * i + 11 * j;
			a = floor(sqrt(n) + 0.5);
			if (a*a == n) 
				cout << n << ' ';
		}
	}
	system("pause");
	return 0;
}