HDU 4143A Simple Problem
来源:互联网 发布:bcm43142 linux 驱动 编辑:程序博客网 时间:2024/04/28 08:47
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4143
代码:
#include"stdio.h"#include"math.h"int main(){int i;int t;int n;int x;int T;scanf("%d",&T);while(T--){scanf("%d",&n);x=-1;t=(int)sqrt(n);for(i=t;i>0;i--){if(n%i==0&&(n/i-i)%2==0&&(n/i-i)/2>0){x=(n/i-i)/2;break;}}printf("%d\n",x);}return 0;}
其实上述式子转化后可以分解因子:n = ( y – x )*( y + x ) ;
令 y – x = i,所以有 x + y = n / i ,即 ( n / i – i ) / 2 = x.
注意:x 要大于 0 ,当 n 是完全平方数时要注意。
刚开始还以为要预处理打表,放弃了。后来找规律,放弃了。。。还是直接枚举呀。。。
知道要从sqrt(n)开始,因为要x最小,必须y-x与y+x最接近。从sqrt(n)开始,往前找第一个满足条件的。
1 0
- HDU 4143 A Simple Problem
- HDU 4143 A Simple Problem
- HDU 4143 A Simple Problem
- hdu 4143 A Simple Problem
- hdu 4143 A Simple Problem
- HDU 4143A Simple Problem
- hdu 4143 A Simple Problem
- hdu A simple problem
- hdu 4143 A Simple Problem 数论
- HDU 4143 A Simple Problem (枚举暴力)
- HDU ACM 4143 A Simple Problem
- hdu 4143 A Simple Problem(数学)
- hdu 2522 A simple problem
- hdu A Simple Math Problem
- hdu 2522 A simple problem
- hdu-2522-A simple problem
- hdu-2522-A simple problem
- HDU 2522 A simple problem
- 加速Android Studio/Gradle构建的方法
- 基于谷歌官方DrawerLayout实现QQ样式边侧滑抽屉缩进缩出技术
- C# 获取本地电脑所有的盘符
- “二分查找”算法的时间复杂度
- Linux 环境下查看resin版本
- HDU 4143A Simple Problem
- Cocoapods: 头文件不提示
- c# 读取xml
- JMS入门教程
- sql大于8000字符的字符替换
- intellij idea 集成tfs(teem foundation server)
- Linux中断处理驱动程序编写
- iOS学习笔记:Object-C基础语法(OC介绍与Foundation初步)
- 重置QComboBox项的时候产生currentIndexChanged信号