本文共 1063 字,大约阅读时间需要 3 分钟。
1、
2、题目
从小到大枚举s(x,m)的值,解出x的值,看看是否满足x^2+s(x,m)x-n=0,如果满足则输出x。
因为1<=n<=10^18,2<=m<=16,所以sum(x,m)的值不会超过1000
sum(x,m)取值范围有待解决
简单的等式Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Description
Input
Output
Sample Input
44 10110 1015 2432 13
Sample Output
-110318
#include#include #define ll long longll s(ll x,ll m){ ll ans=0; while(x) { ans+=x%m; x/=m; } return ans;}int main(){ int t; ll n,m; scanf("%d",&t); while(t--) { scanf("%I64d%I64d",&n,&m); int flag=0; ll x; for(int i=1;i<=200;i++) { x=(-i+sqrt(i*i+4*n))/2; if(x*x+s(x,m)*x-n==0) { flag=1; break; } } if(flag==0) printf("-1\n"); else printf("%I64d\n",x); } return 0;}
转载地址:http://yeddi.baihongyu.com/