♣
帮帮小弟我.~~~哪错了.
/*
求一个正整数是否是三次方数
bool judge(unsigned long num);
xia01ei.unibbs.net
*/
#include <iostream>
#include <cmath>
bool judge(unsigned long num)
{
for(int i=int(pow(num,1.0/4));i<int(pow(num,1.0/2));i++)
{
if(num==i*i*i)
return true;
}
return false;
}
int main(void)
{
bool td;
unsigned long num;
while(1)
{
std::cin>>num;
td=judge(num);
if(td)
std::cout<<"是三次方数"<<std::endl;
else
std::cout<<"不是三次方数"<<std::endl;
}
return 0;
}
//不知道哪错了..只需要改一下...不要求重写
· 网友精彩回答:
for(int i=1; i<num;i++)
{
if(num==i*i*i)
return true;
}
没错啊,可以正常运行。
不过最好在while(1)里面加一个中断点,要不就是个死循环了
拿8来举例吧,8开1/4次方得1.68,但转换为int得1,我想你应该是以为会四舍五入了吧,而1/2次方得2.83,转换为int得2,所以你的条件变成了
for(int i = 1; i < 2; i++)
显然会返回false
啊,居然慢了一步
支持5楼。
错误就是for(int i=int(pow(num,1.0/4));i<=int(pow(num,1.0/2));i++)
可以改为for(int i=0;i <= pow(num,1.0/2);i++)
- 更多问题:
- · imp问题
- · 送分问问题 在线等。 分组是什么意思? UDP 多路复用又是什么意思?
- · 讨论eclipse技术,和java
- · 请教一个HIWORD和lParam的问题
- · 一个比较难的sql语法问题
- · 使用JBuild遇到极郁闷的问题
- · 小弟想帮小弟的小弟在广州找个平面设计培训班,大伙有什么推荐??
- · asp中条件式包含某个文件(再次发问)
- · 关于打印发票问题
- · DataGrid数据显示控件显示刷新的问题!希望大家能够帮忙!(分数少,望大家见谅)!
- · 最简单的查询.dbf数据库中对应记录的方法是什么?
- · 最简单的查询.dbf数据库中对应记录的方法是什么?
- · 在知大家用不用BT,请问在BT下了快100%时不能下了!怎么办?好几次,好郁闷啊!~
- · 2003的系统怎么ASP运行会那么慢,求助
- · 关于用c++ builder 打印发票问题???
- · 请问我用了(CTreeCtrl)DeleteAllItems后再加入新的项为何没有显示,但如用MoveWindow后就有了?谢谢!!!
- · mysql专题
- · mssql专题 | mssql
- · db2专栏
- · 防火墙专题
- · 操作系统相关 | 操作系统
- · freebsd专栏
- · sco unix
- · unix介绍
- · unix ftp
- · 网管工作
- · fat ntfs
- · ipc 入侵
- · 网卡mac地址
- · 如何打开注册表
- · 电脑注册表
- · 不能打开注册表
- · 使用汇编写进注册表启动的简单例子
- · 禁用注册表有什么用处
- · 注册表在哪
- · 电脑注册表损坏时出现的十种症状
- · 怎样修改注册表
- · 如何恢复注册表啊
- · 谁有注册表恢复工具?
- · windows系统安全
- · firefox火狐浏览器

