《C語言及程式設計》實踐參考——k次方之和
阿新 • • 發佈:2019-01-29
【專案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函式求冪 }
[參考解答]
說明:在標準庫math.h中,提供了一個求冪的pow。但是pow函式的原型是 double pow(double x, double y)。從本題目的要求上看,是要用int型的資料進行計算,直接呼叫標準函式不妥。可能會引入誤差,至少,效率上也不能保證(double資料運算的“開銷”要高於int型資料。)#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; }