1. 程式人生 > >《C語言及程式設計》實踐參考——k次方之和

《C語言及程式設計》實踐參考——k次方之和

【專案1-k次方之和】
設計程式,計算:

請在下面的程式結構基礎上完成設計。

#include<stdio.h>
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<stdio.h>
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<n; 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型資料。)