hdu 4937 Lucky Number
来源:互联网 发布:屏蔽移动网络信号 编辑:程序博客网 时间:2024/05/07 15:42
hdu 4937 Lucky Number
给出一个十进制的数 你可以把他换成其他进制的表达形式 更换进制之后 每一位上只能由3 4 5 6组成
如果能有这样的一个进制转换 答案就加1
但是如果这样一个数能换成无数个其他进制的符合要求就输出-1 这样的数就只有 3 4 5 6
如果只有两位数的情况 表示为ab 则就变成解一元二次方程 a*base+b=n 解得的base 要比a b 都要大才行
如果只有三位数的情况 表示为abc 则就变成解一元二次方程 a*base*base+b*base+c=n base要比abc都大
如果位数>=4 解方程的方法不太现实 就采取暴力枚举的方法了
因为至少要满足3在数中 所以进制至少为4 因为至少有a*base*base*base 所以枚举直到i*i*i<=n即可
因为前面的变量都是__I64型的 在使用sqrt函数时 因为sqrt函数是对浮点数 所以要有个转换
代码如下:
#include <cstdio>#include <iostream>#include <cstring>#include <cmath>#include <algorithm>#include <string.h>#include <string>#define eps 1e-8#define op operator#define MOD 10009#define MAXN 100100#define FOR(i,a,b) for(int i=a;i<=b;i++)#define FOV(i,a,b) for(int i=a;i>=b;i--)#define REP(i,a,b) for(int i=a;i<b;i++)#define REV(i,a,b) for(int i=a-1;i>=b;i--)#define MEM(a,x) memset(a,x,sizeof a)#define ll __int64using namespace std;ll MAX(ll x,ll y,ll z){ return max(x,max(y,z));}int main(){freopen("ceshi.txt","r",stdin); int tc; scanf("%d",&tc); int cs=1; while(tc--) { printf("Case #%d: ",cs++); ll n; scanf("%I64d",&n); if(n>=3&&n<=6) { printf("-1\n"); continue; } ll ans=0; ll base; for(ll i=3;i<=6;i++) { for(ll j=3;j<=6;j++) { if(((n-j)%i)!=0) continue; base=(ll)(n-j)/(ll)i; if(base>max(i,j)) ans++; } } for(ll i=3;i<=6;i++) for(ll j=3;j<=6;j++) for(ll k=3;k<=6;k++) { ll a=i; ll b=j; ll c=k-n; ll m=b*b-4*a*c; if(m<0) continue; ll delta=(ll)sqrt(b*b-4*a*c+0.5);//+0.0即可 if(delta*delta!=(b*b-4*a*c)) continue; if((delta-b)%(2*a)) continue; ll x=(delta-b)/(2*a); if(x>MAX(i,j,k)) ans++; } for(ll i=4;i*i*i<=n;i++) { ll x=n; while(x) { if(x%i<3||x%i>6) break; x/=i; } if(!x) ans++; } printf("%I64d\n",ans); } return 0;}
0 0
- HDU 4937 Lucky Number
- HDU 4937 Lucky Number
- hdu 4937 Lucky Number
- HDU-4937-Lucky Number
- HDU - 4937 Lucky Number
- hdu 4937 Lucky Number
- HDU 4937 Lucky Number
- HDU 4937 Lucky Number
- HDU 4937Lucky Number
- hdu 4937 Lucky Number(数论)
- hdu 4937 Lucky Number 数学
- HDU 4937 Lucky Number(数论)
- HDU 4937 Lucky Number 【搜索】
- hdu 4937 Lucky Number 2014多校七 数论
- hdu 4937 Lucky Number 科学暴力
- HDU 4937 Lucky Number(枚举进制)
- hdu 3346 Lucky Number
- hdu 3346 Lucky Number
- c# 中 datapager分页问题 (点击两次) 并且有错误提示
- TCP/IP编程之四书五经——孟岩
- ReactiveCocoa在花瓣客户端的实践
- poj 3422 Kaka's Matrix Travels (费用流)
- 发现一个很好用的邮箱群发邮件工具(奇奇邮箱群发器.zip)
- hdu 4937 Lucky Number
- a different object with the same identifier value was already associated with the session
- Android在SD卡上建文件夹
- ios多手势处理事情
- ExtJs中submit提交表单返回json字符不能再前台显示的解决方法
- 数组对象
- jsp页面之间传递参数
- stl map基本使用
- 4、删除单链表的倒数第m个元素