返回:贺老师课程教学链接 项目要求
【项目1-k次方之和】
设计程序,计算:
请在下面的程序结构基础上完成设计。
#include
int power(int m,int n);//求m的n次方(m^n)
int sum_of_power(int k,int n);//从1^k到n^k的累加和
int main( )
{
int k, n;
scanf("%d %d", &k, &n);
printf("f(%d, %d)=%d\n", k, n, sum_of_power(k,n));//m^k的累加和
return 0;
}
int power(int m,int n)//求m的n次方(m^n)
{
...
}
int sum_of_power(int k,int m)//从1^k到n^k的累加和
{
//在这个函数中调用 power函数求幂
}
[参考解答]
#include
int power(int m,int n);//求m的n次方(m^n)
int sum_of_power(int k,int n);//从1^k到n^k的累加和
int main( )
{
int k, n;
scanf("%d %d", &k, &n);
printf("f(%d, %d)=%d\n", k, n, sum_of_power(k,n));//m^k的累加和
return 0;
}
int power(int m,int n)//求m的n次方(m^n)
{
int i,product=m;
for(i=1; i
product=product*m;
return product;
}
int sum_of_power(int k,int m)//从1^k到n^k的累加和
{
int i,sum=0;
for(i=1; i<=m; i++)
sum+=power(i,k);
return sum;
}说明:在标准库math.h中,提供了一个求幂的pow。但是pow函数的原型是 double pow(double x, double y)。从本题目的要求上看,是要用int型的数据进行计算,直接调用标准函数不妥。可能会引入误差,至少,效率上也不能保证(double数据运算的“开销”要高于int型数据。)