练习74

 
  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. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值