题目描述:
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
输入:
输入可能包含多个测试样例。
对于每个输入文件,第一行输入一个整数T,表示测试案例的数目,接下来的T行每行输入一个浮点数base和一个整数exponent,两个数中间用一个空格隔开。
输出:
对应每个测试案例,
输出一个浮点数代表答案,保留两位小数即可。
样例输入:
5
1.0 10
0.0 -5
1.0 0
1.2 5
2.0 -1
样例输出:
1.00e+00f
INF
1.00e+00f
2.49e+00f
5.00e-01f
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
bool equal(double,double);//判断两个double变量是否相等
double powerWithUnsignedExp(double,unsigned int);
bool isInvalidInput=false;//判断是否底数是0的标志
double power(double base,int exponent)
{
isInvalidInput=false;
if(equal(base,0.0)&&exponent<0)
{
isInvalidInput=true;
return 0.0;
}
unsigned int absExponent = (unsigned int)(exponent);
if(exponent<0)
absExponent=(unsigned int)(-exponent);//次数是负数
double result=powerWithUnsignedExp(base,absExponent);
if(exponent<0)
result=1.0/result;
return result;
}
double powerWithUnsignedExp(double base,unsigned int exponent)
{
if(exponent==0)
return 1;
if(exponent==1)
return base;
double result=powerWithUnsignedExp(base,exponent>>1);//减少乘法的次数,1,2,4,8,16.。。
result*=result;
if(exponent&0x1==1)
result*=base;
return result;
}
bool equal(double num1,double num2)
{
if(num1-num2>-0.0000001
&&(num1-num2<0.0000001))
return true;
else
return false;
}
int main()
{
int n,exp;
double base;
while(scanf("%d",&n)!=EOF)
{
int i;
for(i=0;i<n;i++)
{
isInvalidInput=false;
scanf("%lf %d",&base,&exp);
double result =power(base,exp);
if(!isInvalidInput)
printf("%.2ef\n",result);
else
printf("INF\n");
}
}
return 0;
}
结果:
分享到:
相关推荐
首先,我们关注的是判断一个大数值是否为整数。在JAVA中,通常我们会用到`number instanceof Integer`或`number % 1 == 0`这样的条件判断。例如,以下是一个简单的示例: ```java public boolean isInteger(double ...
在实际应用中,这样的大整数幂运算可以用于计算大整数的模幂,即a^n mod m,这在RSA加密算法等密码学应用中至关重要。为了进行模幂运算,程序可能还包含了取模操作,以确保结果保持在模m的范围内。 总的来说,"任意...
这些都是将小数写成10的负整数幂的形式,便于计算和表达。 接着,课程通过实际情境引入新知识,比如第五次人口普查时中国的人口数(1.3×10^9人)和2013年我国橡胶工业总产值(9.5×10^11元)。这些实例展示了科学...
他们首先需要阅读教材,然后完成相关的练习题,例如将小数转换为10的负整数幂形式,或是用科学计数法表示给定的小数。这些练习不仅帮助学生们熟悉形式转换,还锻炼了他们对数值的感知能力。 在分层训练环节,教师会...
负整数指数幂表示的是底数的正整数幂的倒数,即 \(a^{-n} = \frac{1}{a^n}\) (\(a \neq 0\),\(n\) 是正整数)。引入负指数幂后,指数的运算范围得以扩大,涵盖了所有整数,同时也保持了原有的幂的运算性质。 **四...
3. **0指数幂的定义**:\( a^0 = 1 \),无论 \( a \) 是什么非零数值。 4. **负指数幂的定义**:\( a^{-n} = \frac{1}{a^n} \)(\( a \neq 0 \))。 【运算性质的推广】 在学习了正整数指数幂的运算性质后,我们...
特别是,以整数幂为元素的连分数形式在某些数学问题中具有独特性质,因此受到了数学家的关注。 连分数对数的线性型下界是指对连分数所定义的函数的对数形式线性组合的下界估计。这类研究涉及到连分数的渐近行为以及...
引入零指数幂和负整数指数幂后,指数的运算范围扩展到了全体整数,原有的幂的运算性质依然适用。 3. **科学记数法**:科学记数法用于表示较大或较小的数,一般形式有两种。对于绝对值大于10的数,表示为\(a \times ...
总的来说,本导学案旨在通过实例和练习,帮助学生熟练掌握整数指数幂的运算规则,并能够熟练运用科学记数法处理各种数值问题,这对于后续的数学学习,尤其是高中阶段的数学概念如根号、对数等都有重要的铺垫作用。
给定的两个示例分别展示了如何处理正指数和非整数的情况。 首先,我们可以看到一个简单的解决方案,它直接通过循环来计算指数。当 `n` 为正时,将 `base` 自乘 `n-1` 次;当 `n` 为负时,先将 `base` 取倒数,再自...
《整数指数幂的探索与应用》 在数学的世界里,整数指数幂是一个不可或缺的概念,尤其对于初学者而言,理解和掌握整数指数幂的运算性质至关重要。这是一份专门针对八年级学生的教学资料,旨在深入浅出地阐述这一主题...
6. **数值线性代数**:重点讨论矩阵特征值和特征向量的计算,如幂迭代法、雅可比迭代和高斯-赛德尔迭代,以及奇异值分解(SVD)的应用。 7. **偏微分方程的数值解**:如有限差分法、有限元法和边界元法,用于解决...
零指数幂与负整数指数幂是数学中的一个重要概念,主要涉及幂的运算规则和扩展。在中学六年级的数学课程中,学生将接触到这些概念,以加深对幂运算的理解。 1. **零指数幂**: 零指数幂的规定是:任何非零数的0次幂...
- **确定修约间隔**:修约间隔可以是10的负整数次幂,例如0.1,或者指定保留的小数位数,如一位小数、两位小数等。 - **进舍规则**:根据“四舍六入五留双”的原则,即将被舍弃的数中最左边的数字如果小于5,则...
整数指数幂是数学中的一个基础概念,尤其在中学数学教育中占有重要地位。它涉及到幂的计算、负指数幂的定义以及科学记数法的应用。以下是对这些知识点的详细阐述: 1. **正整数指数幂的运算性质**: - 当m和n为正...
6. **最优化问题**:包括梯度下降法、牛顿法、拟牛顿法和线性规划、整数规划等,应用于寻找函数的局部或全局最小值。 7. **矩阵特征值与特征向量的计算**:幂迭代法、雅可比迭代法和 lanczos 迭代等方法。 8. **...
5. **数值优化**:包括梯度下降法、牛顿法、拟牛顿法以及线性规划、整数规划等,用于寻找函数的极值或优化问题的解。 6. **插值与拟合**:如拉格朗日插值、多项式插值、样条插值,以及最小二乘法,用于通过有限数据...
浮点运算则涉及到计算机如何表示和操作非整数数值,了解其局限性可以帮助我们选择合适的数值计算方法。稳定性是评价算法质量的重要指标,稳定的算法在小的输入变化下能保持输出的稳定。 二、数值线性代数 线性代数...
通过学习这部分内容,学生不仅能够掌握零指数幂和负整数指数幂的规则,还能熟练运用科学记数法来处理各种数值问题,这对于后续的数学学习和科学技术领域的应用至关重要。这种表示方式在物理、工程、化学等学科中广泛...
8. **最优化问题**:一维搜索方法、梯度下降法、牛顿法、拟牛顿法和线性规划、整数规划等优化算法。 9. **随机数生成与统计**:随机数的生成,概率分布函数的实现,以及简单的统计分析。 在提供的压缩包中,可能...