博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FZU 2125 Problem 2125 简单的等式
阅读量:4035 次
发布时间:2019-05-24

本文共 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

现在有一个等式如下:x^2+s(x,m)x-n=0。其中s(x,m)表示把x写成m进制时,每个位数相加的和。现在,在给定n,m的情况下,求出满足等式的最小的正整数x。如果不存在,请输出-1。

Input

有T组测试数据。以下有T(T<=100)行,每行代表一组测试数据。每个测试数据有n(1<=n<=10^18),m(2<=m<=16)。

Output

输出T行,有1个数字,满足等式的最小的正整数x。如果不存在,请输出-1。

Sample Input

44 10110 1015 2432 13

Sample Output

-110318
3、AC代码:

#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/

你可能感兴趣的文章
Win10+VS+ESP32环境搭建
查看>>
Ubuntu+win10远程桌面
查看>>
flutter-实现圆角带边框的view(android无效)
查看>>
android 代码实现圆角
查看>>
flutter-解析json
查看>>
android中shader的使用
查看>>
java LinkedList与ArrayList迭代器遍历和for遍历对比
查看>>
drat中构造方法
查看>>
JavaScript的一些基础-数据类型
查看>>
JavaScript基础知识(2)
查看>>
转载一个webview开车指南以及实际项目中的使用
查看>>
android中对于非属性动画的整理
查看>>
一个简单的TabLayout的使用
查看>>
ReactNative使用Redux例子
查看>>
Promise的基本使用
查看>>
android给文字加边框(修改不能居中的问题)
查看>>
coursesa课程 Python 3 programming 统计文件有多少单词
查看>>
coursesa课程 Python 3 programming 输出每一行句子的第三个单词
查看>>
coursesa课程 Python 3 programming Dictionary methods 字典的方法
查看>>
Returning a value from a function
查看>>