pow函数问题
时间:2022-07-26
本文章向大家介绍pow函数问题,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
pow函数问题
不要随便用pow函数
——这是我这几天写程序的切身体会,如果需要用整数的乘方运算,自己写一个函数吧。
昨天在网上做一道题,其中我写了一句n = (int) pow ( 5.0 , ( double ) k );我认为应该没有问题。因为math库里的pow函数的两个参数和返回值都是浮点型。返回的数我只要它的整数部分(本来也应该是个整数)。
于是后来题目一直不能过,而且我的两个编译器( VC6和CFREE )算出的结果还不一样。通过一晚上的调试,我才找到这里。后来自己写了一个pow函数,解决了问题。
我们可以来做个试验,写一个程序:
#include <stdio.h>
#include <math.h>
int main()
{
for(int i = 0 ; i < 10 ; i++)
{
long n;
n = (int)pow(5,i);
printf("%dn",n);
}
return 0;
}
你放在VC6下运行,毫无问题是吗,输出为:
1
5
25
125
625
3125
15625
78125
390625
1953125
你放在linux下编译运行(或者在win下用cfree这种用mingw32编译器的软件编译运行),结果如下:
1
5
24
124
624
3125
15624
78124
390624
1953124
看到了么?从52开始就错。你把n = ( int ) pow ( 5 , i ); 换成n = (int) pow ( 5.0 , ( double ) k ); 结果一样。为什么,我也不知道为什么。你算3的乘方都没出问题。下次我真的不敢用pow函数了。
题目交了一晚上过不了,因为评测系统用的是linux,而我是在VC6下调试运行的。
无力吐槽C的兼容性。后来还遇到了一个64位整数的问题,一样也是因为不同平台下不同编译器出的结果就不一样,这些兼容性问题在一道题里面集中反映了出来,也真是不简单。(关于这个64位整数的问题我以后会讲讲)
- hdu----(2222)Keywords Search(trie树)
- MySQL数据库(七):数据导出与导入
- flume与kafka整合高可靠教程
- Oracle 12c系列(一)|多租户容器数据库
- Spring Security入门(三):密码加密
- MySQL数据库(八):表记录的基本操作(增删改查)
- flume应该思考的问题
- 利用Go语言实现简单Ping过程的方法
- MySQL数据库(九):修改表结构
- Go语言中反射的正确使用
- spark零基础学习线路指导
- MySQL数据库(十):用户授权与撤销授权
- Oracle 12c系列(二)|PDB的创建
- Spring Security 入门(四):自定义-Filter
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 超详细的Java容器、面板及四大布局管理器应用讲解!
- Go各时间字符串的解析
- MongoDB数据分页与排序
- Python 技术篇-用PIL库实现图片剪切、图片粘贴
- maven初步入门
- 超详细的Java弹窗样式及使用教程【JOptionPane类详细使用教程】
- Python 技术篇-用PIL库旋转图片的两种方式,改变图像尺寸
- html+css+JavaScript例题
- 加速Github的访问及下载速度
- HDFS简介
- Python 技术篇-获取requests里的二进制文本并保存为音频、图片文件
- [转]maven的pom.xml详解
- Windows下给磁盘扩容
- ZooKeeper的安装
- 仿微信的网络聊天室项目开发【完整源码讲解】