练习74

来源:互联网 发布:telnet 1433端口不通 编辑:程序博客网 时间:2024/04/28 16:27
 
  1. /********************************************************************************
  2.   74. (NOI'95.1_5) m、n为整数,且满足下列两个条件:
  3.   ① m、n∈{1, 2, …, k}, (1≤k≤109)
  4.     ② (n^2-m*n-m^2)^2=1
  5.     编一程序, 由键盘输入k, 求一组满足上述两个条件的 m、n, 并且使m^2+n^2
  6.  的值最大.
  7.     例如, 若 k=1995, 则 m=987, n=1597 时, 则 m、n 满足条件, 且可使
  8.  m^2+n^2的值最大.
  9.   由①,② n^2 - m^2 = m*n + 1 或 n^2 - m^2 = m*n - 1
  10.   得 n>=m
  11.   *******************************************************************************/
  12. #include <stdio.h>
  13. void main()
  14. {
  15.     int k;
  16.     int m,n;
  17.     printf("请输入k的值:");
  18.     scanf("%d", &k);
  19.     for(n=k; n>=1; n--)
  20.         for(m=n; m>=1; m--)
  21.         {
  22.             if(n*n-m*(m+n)==1 || n*n-m*(m+n)==-1)
  23.             {
  24.                 printf("m = %d n = %d/n",m,n);
  25.                 return;
  26.             }
  27.         }
  28. }