注意处理溢出

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long n;
long long a[60][2];
int k;
int fun(long long y,int x)
{
long long cnt=0,cur=1;
for(int i=1; i<=x; i++)
{
if(n/cur<y) return 1;
cur*=y;
cnt+=cur;
if(cnt>n)
{
return 1;
}
}
if(cnt==n-1||cnt==n)
{
a[k][0]=y;
a[k][1]=x;
k++;
return 0;
}
if(cnt<n)
{
return 2;
}
}
void solve(int x)
{
long long lb=1,ub=n;
while(ub-lb>1)
{
long long mid=(ub+lb)/2;
if(fun(mid,x)==0) break;
else if(fun(mid,x)==1)
{
ub=mid;
}
else lb=mid;
}
}
int main()
{
while(cin>>n)
{
memset(a,0,sizeof(a));
k=0;
for(int i=0; i<60; i++)
{
solve(i);
}
long long ans=a[0][0]*a[0][1];
long long x=a[0][0],y=a[0][1];
for(int i=0; a[i][0]!=0; i++)
if(a[i][0]*a[i][i]<ans)
{
ans=a[i][0]*a[i][1];
x=a[i][0];
y=a[i][1];
}
printf("%I64d %I64d\n",y,x);
}
return 0;
}

最新文章

  1. c# String.Join 和 Distinct 方法 去除字符串中重复字符
  2. [工作中的设计模式]备忘录模式memento
  3. QT多线程及通过事件进行通信(通过自定义事件,然后QApplication::postEvent给主界面,我之前用的是信号槽)
  4. 測试之路2——对照XML文件1
  5. webpack2进阶之多文件,DLL,以及webpack-merge
  6. NIO笔记---上
  7. SpringBoot+MyBatis+MySQL读写分离
  8. [SimplePlayer] 实现一个简单的播放器
  9. JavaWeb学习(一)———JavaWeb入门
  10. Java实验二
  11. oracle 11g 安装及netca,dbca乱码之解决
  12. spark on yarn 无法提交任务问题
  13. MVC 二级联动
  14. 元类应用ORM实现
  15. Cracking The Coding Interview4.3
  16. 附001.etcd配置文件详解
  17. RabbitMQ--学习资源汇
  18. sql server 2000 错误229 拒绝了对象sysobjects 的select 权限
  19. IntelliJ IDEA自定义类和方法注解模板
  20. 「小程序JAVA实战」小程序我的个人信息-注销功能(42)

热门文章

  1. Mysql数据库事务的隔离级别和锁的实现原理分析
  2. 2015级C++第2周实践项目
  3. Oracle性能分析1:开启SQL跟踪和获取trace文件
  4. CF 567C(Geometric Progression-map)
  5. linux下开发,解决cocos2d-x中编译出现的一个小问题, undefined reference to symbol &amp;#39;pthread_create@@GLIBC_2.2.5&amp;#39;
  6. 【从零之六&amp;amp;完结】android口语对话系统(RavenClaw java版 含所有源代码)
  7. hdu Escape
  8. Android使用有道翻译API实如今线翻译功能
  9. BOOL的getter方法
  10. eclipse启动错误:An internal error occurred during: &quot;reload maven project&quot;.