CodeForces 233B Non-square Equation(数学问题方程转化)
来源:互联网 发布:小米手机网络设置在哪 编辑:程序博客网 时间:2024/06/05 05:45
Non-square Equation
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
x^2 + s(x)·x - n = 0,
where x, n are positive integers, s(x) is the function, equal to the sum of digits of number x in the decimal number system.
You are given an integer n, find the smallest positive integer root of equation x, or else determine that there are no such roots.
Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to use cin, cout streams or the %I64d specifier.
Sample Input
Input
2
Output
1
Input
110
Output
10
Input
4
Output
-1
In the second test case x = 10 is the minimum root. As s(10) = 1 + 0 = 1 and 102 + 1·10 - 110 = 0.
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Description:
描述:
Let's consider equation:x^2 + s(x)·x - n = 0,
where x, n are positive integers, s(x) is the function, equal to the sum of digits of number x in the decimal number system.
You are given an integer n, find the smallest positive integer root of equation x, or else determine that there are no such roots.
Input
输入
A single line contains integer n (1 ≤ n ≤ 10^18) — the equation parameter.Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to use cin, cout streams or the %I64d specifier.
Output
输出
Print -1, if the equation doesn't have integer positive roots. Otherwise print such smallest integer x (x > 0), that the equation given in the statement holds.Sample Input
Input
2
Output
1
Input
110
Output
10
Input
4
Output
-1
Hint
提示
In the first test case x = 1 is the minimum root. As s(1) = 1 and 12 + 1·1 - 2 = 0.In the second test case x = 10 is the minimum root. As s(10) = 1 + 0 = 1 and 102 + 1·10 - 110 = 0.
In the third test case the equation has no roots.
找出使方程成立的x值,s(x)是x各个位数的数之和
反向思维,先设s(x),然后整理方程,求出x后,再带入验证
#include<stdio.h>#include<math.h>#define ll __int64ll sum(ll x)//求位数之和{int sum=0;while(x!=0){sum+=x%10;x=x/10;}return sum;}int main(){ll n;scanf("%I64d",&n);ll ans=-1;for(int i=1;i<89;i++)//s(x)小于81,依次遍历{ double d=sqrt(double(i*i+4*n)); ll x=d/2-(double)i/2; ll y=sum(x); if(y==i&&d*d==(double)(i*i+4*n)) { ans=x; break; }}printf("%I64d\n",ans);}
0 0
- CodeForces 233B Non-square Equation(数学问题方程转化)
- Non-square Equation(数学问题方程转化)
- Codeforces 233B:Non-square Equation(数学+思维)
- CodeForces 233B Non-square Equation (数学)
- Codeforces 233B Non-square Equation(数学)
- Codeforces 233B Non-square Equation (数学) -- 解题报告
- Codeforces 233B Non-square Equation (数学+思维)
- 【codeforces】Non-square Equation(数学推导)
- CodeForces 233B Non-square Equation
- CodeForces 233B Non-square Equation
- CodeForces-233B-Non-square Equation
- CodeForces 233B. Non-square Equation【状压】
- 【codeforces 233 B Non-square Equation】+ 思维
- 【CodeForces】233B - Non-square Equation(思维)
- 【Codeforces-233B】-Non-square Equation(思维,公式转换)
- Codeforces-----233B---Non-square Equation暴力枚举
- codeforces 233B Non-square Equation 思维题
- Non-square Equation 数学
- Qt 常用类
- Rayleigh-Taylor 不稳定建模的困惑
- 分享Android开发中用到的图标icon设计下载地址
- Java方法重写注意事项
- 为EditPlus设置Eclipse风格的快捷键
- CodeForces 233B Non-square Equation(数学问题方程转化)
- 解决:sql server 中date类型,检索出该类型发现日期被减少了两天
- 【RxJava 实践系列】(二)创建观察者与被观察者
- C# 001 --- 正确的删除一个控件的事件函数 --- 解决错误:“A”不包含“B”的定义,并且找不到可接受类型为“A”的第一个参数的扩展方法“B”(是否缺少 using 指令或程序集引用?)
- JAVA中toString方法的作用
- Redis(五)主从复制
- EventBus使用详解(一)——初步使用EventBus
- 深入分析js中的constructor 和prototype
- (30)try语句块和异常处理