可以用在math.h头文件中声明的pow()函数求,例如:
成都创新互联公司成立以来不断整合自身及行业资源、不断突破观念以使企业策略得到完善和成熟,建立了一套“以技术为基点,以客户需求中心、市场为导向”的快速反应体系。对公司的主营项目,如中高端企业网站企划 / 设计、行业 / 企业门户设计推广、行业门户平台运营、重庆App定制开发、成都做手机网站、微信网站制作、软件开发、资阳移动机房等实行标准化操作,让客户可以直观的预知到从成都创新互联公司可以获得的服务效果。
要求a的b次方,就用pow(a,b)即可。
^符号在C中是位异或操作符,不用于求乘方。
C语言中计算一个数的N次方可以用库函数pow来实现。
函数原型:double pow(double x, double y);
功 能:计算x^y的值
返 回 值:计算结果
举例如下:
double a = pow(3.14, 2); // 计算3.14的平方
注:使用pow函数时,需要将头文件#includemath.h包含进源文件中。
#include stdio.h
int main(void)
{
int x,y=1,z;
printf("Enter x:");
scanf("%d",x);
for(z=1;z=x;z++)
{
y=y*x;
}
printf("y=%d",y);
return 0;
}
或
#include stdio.h
#include math.h
int main(void)
{
int x,y;
printf("Enter x:");
scanf("%d",x);
y=pow(x,x);
printf("y=%d",y);
return 0;
}
1,for循环的条件错了,应该是大于号。
2,math.h中的函数用的时候要慎重,这些都是用来做复杂的数学计算的,时间开销都很大。
3,求余只能对整数操作,这点是必然的。但浮点数是可以转换成整数的,可以用强制类型转换,或者设一个整型的中间变量。注意浮点数转整数的时候是舍入的。当然,这里只是说这个事,不建议这样做。
建议的做法有两个,简单点延用原有的思路,可以自己写一个求10的k次方的函数,用整数进行运算。
int pow10n( int k )
{
r = 1;
for(i=0; i k ; ++i)
r *= 10;
return r;
}
复杂点的做法是把求10的k次方这个运算和拆分n的循环嵌在一起,这个应该是正统的做法。
for( k=0; k3; ++k )
{
n %= 10;
}
当然,这个算法得到的结果是逆序的,4、3、2、1
这有两个办法,一个是把结果顺序放到数组中,输出的时候把顺序倒过来,说白了是用中间变量。
另外一个办法是用栈,或者用递归(本质上也是用的栈),直接按逆序出结果。当然,这个方法对初学者有点难度了。