ZZULIOJ 1798: 戴姆勒的求助【数学】
2015-12-13 12:17
337 查看
128 MB
Submit: 530 Solved: 70
SubmitStatusWeb
Board
灿灿听到后就不高兴了,立马要考考他。
聪明的灿灿要用立方数来难倒他。
他给戴姆勒一个数字n,问他有从1到n有多少个完全立方数(1,8,27,,,,)?
戴姆勒瞬间傻眼了(好可怜),于是请求你来帮助他,你能帮助他吗?
每组测试实例有一个数字n(1<=n<=1018)。
1
2
8
1
2
解题思路
因为每个立方数都是由(1,2,3.....)整数立方得来所以,只要先求出这个数的3次平方根,取整然后加1,和n比较就能得到答案,求出的数正好包含前面所有的能成为立方数的个数。
1798: 戴姆勒的求助
Time Limit: 1 Sec Memory Limit:128 MB
Submit: 530 Solved: 70
SubmitStatusWeb
Board
Description
戴姆勒最近比较喜欢平方数,自称掌握所有关于平方数的题。灿灿听到后就不高兴了,立马要考考他。
聪明的灿灿要用立方数来难倒他。
他给戴姆勒一个数字n,问他有从1到n有多少个完全立方数(1,8,27,,,,)?
戴姆勒瞬间傻眼了(好可怜),于是请求你来帮助他,你能帮助他吗?
Input
输入第一行为一个整数T(0<T<=1000),表示有T组测试实例。每组测试实例有一个数字n(1<=n<=1018)。
Output
请输出从1到n中立方数的个数;Sample Input
31
2
8
Sample Output
11
2
HINT
如果使用了pow函数,请尝试加不同大小的小数修正来修正精度。解题思路
因为每个立方数都是由(1,2,3.....)整数立方得来所以,只要先求出这个数的3次平方根,取整然后加1,和n比较就能得到答案,求出的数正好包含前面所有的能成为立方数的个数。
#include <iostream> #include<cstdio> #include<cstring> #include<cmath> #define LL long long using namespace std; int main() { int t; LL n,sum; scanf("%d",&t); while(t--) { scanf("%lld",&n); sum=pow(n,1.0/3); sum+=1; if(sum*sum*sum>n) sum--; printf("%lld\n",sum); } return 0; }
相关文章推荐
- pfx证书提取公私钥的方法
- 机器人操作系统 除了Android还有一个ROS(转)
- IList,IQeurable,IEnumble和List 的区别
- socket select模型
- UVa 232 Crossword Answers (纵横字谜的答案)
- 绝对干燥:保险公司决策分析系统建设方案
- 文本挖掘之特征选择(python 实现)
- Git是个好工具(转)
- nginx编译安装与apache动静分离共存设置及负载均衡设置
- 杭电OJ 4198(广搜+优先队列~)图搜.Quick out of the Harbour
- [leetcode] 132. Palindrome Partitioning II 解题报告
- nagios二次开发(五岁以下儿童)---nagios和nagiosql关系
- 源码编译安装 MySQL 5.5.x 实践(转)
- PostgreSQL学习手册(角色和权限)
- JavaScript:验证input[type=‘text’]输入框动态数据
- FragmentDialog设置进入和退出动画
- Tomcat源码学习(一)
- Scala 函数柯里化
- 基于百度地图的定位实现天气预报查询
- 设计模式 分类 总概括