PTA-2017實驗2.4 函數(shù)

6-1 簡單實現(xiàn)x的n次方(10 分)
本題要求實現(xiàn)一個計算xn(n≥0)的函數(shù)。
函數(shù)接口定義:
double mypow( double x, int n );
函數(shù)mypow應(yīng)返回x的n次冪的值。題目保證結(jié)果在雙精度范圍內(nèi)。

裁判測試程序樣例:

#include <stdio.h>

double mypow( double x, int n );

int main()
{
    double x;
    int n;

    scanf("%lf %d", &x, &n);
    printf("%f\n", mypow(x, n));

    return 0;
}
/* 你的代碼將被嵌在這里 */

輸入樣例:

0.24 4

輸出樣例:

0.003318

程序源碼

double mypow(double x, int n){
    double num;
    num=1;
    for(int i=1;i<=n;i++){
        num *=x;
    }
    return num;
}

6-2 使用函數(shù)求1到10的階乘和(10 分)
本題要求實現(xiàn)一個計算非負(fù)整數(shù)階乘的簡單函數(shù),使得可以利用該函數(shù),計算1!+2!+?+10!的值。

函數(shù)接口定義:

double fact( int n );
其中n是用戶傳入的參數(shù),其值不超過10。如果n是非負(fù)整數(shù),則該函數(shù)必須返回n的階乘。

裁判測試程序樣例:

#include <stdio.h>

double fact( int n );

int main(void)
{    
    int i;
    double sum; 

    sum = 0; 
    for(i = 1; i <= 10; i++) 
        sum = sum + fact(i); 

    printf("1!+2!+...+10! = %f\n", sum); 
    return 0;
}

/* 你的代碼將被嵌在這里 */

輸入樣例:

本題沒有輸入。

輸出樣例:

1!+2!+...+10! = 4037913.000000

程序源碼

double fact( int n ){
    int num;
    num=1;
    for(int j=1;j<=n;j++){
            num *=j;
       }
   return num;
}

7-1 生成3的乘方表(15 分)
輸入一個非負(fù)整數(shù)n,生成一張3的乘方表,輸出3?0~3?n
?? 的值??烧{(diào)用冪函數(shù)計算3的乘方。

輸入格式:

輸入在一行中給出一個非負(fù)整數(shù)n。

輸出格式:

按照冪的遞增順序輸出n+1行,每行格式為“pow(3,i) = 3的i次冪的值”。題目保證輸出數(shù)據(jù)不超過長整型整數(shù)的范圍。

輸入樣例:

3

輸出樣例:

pow(3,0) = 1
pow(3,1) = 3
pow(3,2) = 9
pow(3,3) = 27

程序源碼

#include <stdio.h>
#include <math.h>

int main()
{
   int  n,num;
   scanf("%d",&n);
    for(int i=0;i<=n;i++){
        num = pow(3,i);
        printf("pow(3,%d) = %d\n",i,num);
      }
  
    return 0;
}

7-2 求平方根序列前N項和(15 分)
本題要求編寫程序,計算平方根序列√1 +√?2+√3+?的前N項之和。可包含頭文件math.h,并調(diào)用sqrt函數(shù)求平方根。

輸入格式:

輸入在一行中給出一個正整數(shù)N。

輸出格式:

在一行中按照“sum = S”的格式輸出部分和的值S,精確到小數(shù)點后兩位。題目保證計算結(jié)果不超過雙精度范圍。

輸入樣例:

10

輸出樣例:

sum = 22.47

程序源碼

#include <stdio.h>
#include <math.h>

int main()
{
   int  n;
   double num;
   scanf("%d",&n);
   num=0;
    for(int i=0;i<=n;i++){
    num+=sqrt(i);   
  }
  printf("sum = %.2f",num);
    return 0;
}

7-3 求階乘序列前N項和(15 分)
本題要求編寫程序,計算序列 1!+2!+3!+? 的前N項之和。

輸入格式:

輸入在一行中給出一個不超過12的正整數(shù)N。

輸出格式:

在一行中輸出整數(shù)結(jié)果。

輸入樣例:

5

輸出樣例:

153

程序源碼

#include <stdio.h>
#include <math.h>

int main()
{
   int i,n,j,sum,num;
   scanf("%d",&n);
   num=1;
   for(i=1;i<=n;i++){
    for(j=i;j<=i;j++){
            num *=j;
       }
       sum+=num;
   }
   printf("%d",sum);
    return 0;
}


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容