codeforces 233B(灵活运用公式枚举)
B. Non-square Equation
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Let's consider equation:
x2 + 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 ≤ 1018) — 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 %I64dspecifier.
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.
Examples
input
Copy
2
output
Copy
1
input
Copy
110
output
Copy
10
input
Copy
4
output
Copy
-1
Note
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=(-b+√ ̄b*b-4ac) /2a(正根)可大概得出x最大值数量级为10的9次方
即最大为999999999,sx最大为81,故可以枚举sx来完成求解,但实际上这是有瑕疵的,
但这种思想还是需要学习学习的*/
#include <iostream>
#include <cmath>
using namespace std;
long long init(long long x) //用于求sx
{long long sum=0;while(x){sum+=x%10;x/=10;}return sum;
}
int main()
{long long n,ans,x,sx;int i,j,k;while(cin>>n){ans=-1;for(i=1;i<=81;i++) //枚举sx {x=sqrt(i*i/4+n)-i/2; //根据公式求x,其实可以明显看出来这样是不对的,i*i/4算出来的数字极有可能不符合,他算出来的肯定是整数 sx=init(x); //求sx,因为x算出来可能跟枚举的sx不对应,所以要再求一遍,有碰运气的嫌疑,也就是这道题的不好之处 if(x*x+sx*x==n){ans=x;}}cout<<ans<<endl;}
}
codeforces 233B(灵活运用公式枚举)相关推荐
- 1137 - Sin your life sin公式 + 枚举
http://www.ifrog.cc/acm/problem/1137 和差化积公式, 变成2 * sin((x + y) / 2) * cos((x - y) / 2) + sin(n - (x ...
- Codeforces B. Dubious Cyrpto (枚举 / 模拟) (Round #657 Div.2)
传送门 题意: 已知存在三个数a,b,c满足l <= a,b,c <= r,且m = n * a + b - c.现在告诉你l,r和m的值,需要你找到一组可行的a,b,c. 思路: 枚举a ...
- 完全平方公式用c语言表达式,完全平方公式教案
完全平方公式 教学目的: 1.经历探索完全平方公式的过程,进一步发展符号感和推理能力 2.会推导完全平方公式,并能运用公式进行简单的计算 3.了解完全平方和公式的几何背景 教学重点:完全平方公式的形成 ...
- 互斥事件的概念和公式_高三数学辨析专题---概率模型中互斥、对立、独立事件...
在学习排列.组合和概率的学习过程中,不少同学对概率中的互斥.对立.独立事件等概念混淆不清,不能准确理解这些概念的本质内涵,导致不能熟练掌握互斥事件的概率加法公式与相互独立事件的概率乘法公式计算一些事件 ...
- SCAU-春季训练-不应该啊(怎么这么菜。。。)
2021/3/14 春季训练2(难度div2d) 反思:(赛前,看什么crt,赛时满脑子都是线性方程组,....................................) 最近表现都不太好.. ...
- 计算机网络 哪个教材好,学习计算机网络哪本教材最好?
benxiuxian 高分答主 12-29 TA获得超过8057个赞 地理期末复习计划临近期末,为帮助学生理顺知识,培养学生灵活运用知识分析问题,解决问题的能力,形成完整的知识体系,特作复习计划如下: ...
- rpn风险等级评价准则_2019一建经济学习重点:技术方案经济效果评价
2019年一级建造师备考正在进行中,你是在看教材还是在刷题呢?今天优路教育小编是来送干货的,教材太厚,知识点太乱,那就来看这里的考点总结吧.接下来小编带大家一起学习<工程经济>第一章工程经 ...
- 初中数学抽象教学的案例_初中数学教学反思案例
在高中数学教学实践中实施数学美育教育,让学生逐渐感受数学之美,认识数学之美,体验数学之美,从而对数学产生浓厚兴趣,这对于培养学生的数学思维和提高数学学习成绩,将具有深远的意义和价值.下面是有初中数学教 ...
- 大于3小于4的整数bleem_六年级数学小升初知识点梳理
对于即将升入初中的六年级学生来说,如何高效复习数学成了家长老师们头一件大事.下面是赶考状元小编整理的关于小学六年级的数学总复习资料,供大家参阅,希望对您的教育教学有帮助! 六年级-小学数学总复习资料1 ...
最新文章
- 深入理解JVM虚拟机(四):Class类文件结构(二)
- QT的QMediaControl类的使用
- 学习设计模式 - 六大基本原则之接口隔离原则
- 【斐波那契】【前缀和】无限序列
- 揭秘一线互联网企业 前端JavaScript高级面试
- 【C语言笔记初级篇】第八章:简单调试
- nginx哪个版本性能好_骁龙750g和天玑1000+哪个好-参数性能对比
- python输入10个数字排序案例_介绍十个Python小案例,新手入门就在这里
- C#两种创建快捷方式的方法
- CloudStack升级中文指南:4.1.x/4.2.x 至4.3版本
- 0基础入门CCNA视频学习(附链接和注意事项)
- Axure产品设计软件视频教程大全
- Vue3新特性——Composition API详解
- 计算机控制的电冰箱,电冰箱控制电路图及工作原理
- 2022-2027年中国缝制机械行业市场全景评估及发展战略规划报告
- php各种编码集详解和在什么情况下进行使用
- 怎样远程控制别人的电脑
- 理解线性稳压器及其主要性能参数
- 汤臣倍健创业25周年,宣布公司未来3年四个战略重点
- [架构之路-159]-《软考-系统分析师》-10-系统分析-6-现有业务流程分析, 系统分析最核心的任务