【数学思维】CodeForces - 233B Non-square Equation
2017-06-15 09:37
537 查看
Problem Desciption
x2 + s(x)·x - n = 0核心这个公式,让你找出最小的根,满足这个公式,其中s(x)表示的是x的各位数的和。
代码:这题想了很久,一开始正常思维,TLE就开始各种优化,思路就朝着缩小x的范围优化。然而就差一点就对了。后面还是在时间内没A出来,看了下人家的博客,发现和自己思路很接近。还是有点收获的。
x2 + s(x)·x - n = 0核心这个公式,让你找出最小的根,满足这个公式,其中s(x)表示的是x的各位数的和。
代码:这题想了很久,一开始正常思维,TLE就开始各种优化,思路就朝着缩小x的范围优化。然而就差一点就对了。后面还是在时间内没A出来,看了下人家的博客,发现和自己思路很接近。还是有点收获的。
#include<bits/stdc++.h> using namespace std; int main() { long long n; int i; while(~scanf("%lld", &n)) { for(i = 1; i <= 81; i++) //因为n最大1e18,所以x最大也就1e9.所以s(x)最大也就81 { double t = sqrt(i * i + 4 * n); //判断求根公式结果是不是整数 long long t1 = t; if(t1 == t) //是整数 { long long x = (sqrt(i * i + 4 * n) - i) / 2; //求根公式求出x long long tt = x, sum = 0; while(tt) { sum += tt % 10; tt = tt / 10; } if(sum == i) //看看s(x) 是否等于 i 等于输出答案 { printf("%lld\n", x); break; } } } if(i > 81) printf("-1\n"); } return 0; }
相关文章推荐
- Codeforces 233B Non-square Equation (数学+思维)
- CodeForces - 233B Non-square Equation (数学
- Codeforces 758C Unfair Poll 【数学】【思维】
- codeforces 560C Gerald's Hexagon (数学+思维)
- Codeforces 357D Xenia and Hamming【数学+思维】
- Codeforces 789A Anastasia and pebbles(数学,思维题)
- CodeForces - 611B 数学思维
- codeforces 894B. Ralph And His Magic Field (数学题+思维)
- CodeForces 233B Non-square Equation(数学问题方程转化)
- Codeforces 233B Non-square Equation (数学) -- 解题报告
- Codeforces - 500D. New Year Santa Network - 树形dp、数学、思维
- (CodeForces 883A) The Meaningless Game 纯正的数学思维题(有点卡cin时间)
- CodeForces 233B Non-square Equation (数学)
- Codeforces 766E Mahmoud and a xor trip [二进制,]【数学+思维】
- Codeforces 257C:View Angle(思维+数学+atan2函数)
- Codeforces 233B Non-square Equation(数学)
- CodeForces - 540B School Marks (数学思维题 中位数)
- Codeforces 599D Spongebob and Squares【思维枚举+数学方程】
- CodeForces - 899D Shovel Sale 数学+思维
- Codeforces 233B:Non-square Equation(数学+思维)