谢谢楼上的两位,我的问题基本上解决了,谢谢你们
n+100 = bb
则 (a+b)(a-b) = 2*2*17
a+b 和 a-b 要么都是奇数,要么都是偶数
所以 a+b=2*17,a-b=2
解得 a=18, b=16
代入 n+100 = bb 得到 n=156
如果用代码暴力求解怎么做?(别说用浮点数)
仍然是利用
n+168 = aa
n+100 = bb
程序代码:
#include <stdio.h> int main( void ) { for( int a=13,b=10; ; ) // 13*13>=168,10*10>=100 { int n1 = a*a - 168; int n2 = b*b - 100; if( n1 == n2 ) { printf( "%d\n", n1 ); break; } if( n1 < n2 ) ++a; else ++b; } return 0; }输出 156