hdu 4627 (多校联赛第3场1008)

来源:互联网 发布:拉格朗日插值算法程序 编辑:程序博客网 时间:2024/05/17 23:55

点击打开链接


签到题:

给你一个n,求max( lcm(a,b)) a+b==n;


很显然当两个数最接近的时候lcm最大

当n==2, 1

n%2==1  ans=n/2*(n/2+1);

n%2==0 n/=2, n%2==0  ans=(n-1)*(n+1);   n%2==1  ans=(n-2)*(n-2);


自己写的手贱,少了一个else,WA了,debug好长时间才发现。。。。。


#include"stdio.h"#include"string.h"int main(){int T;__int64 n;__int64 ans;scanf("%d",&T);while(T--){scanf("%I64d",&n);if(n==2)ans=1;else if(n%2==1)ans=(n/2*(n/2+1));else if(n%2==0){n=n/2;if(n%2==0)ans=(n-1)*(n+1);else ans=(n-2)*(n+2);}printf("%I64d\n",ans);}return 0;}


原创粉丝点击