PTA-2017實驗2.4 函數

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

裁判測試程序樣例:

#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 使用函數求1到10的階乘和(10 分)
本題要求實現一個計算非負整數階乘的簡單函數,使得可以利用該函數,計算1!+2!+?+10!的值。

函數接口定義:

double fact( int n );
其中n是用戶傳入的參數,其值不超過10。如果n是非負整數,則該函數必須返回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 分)
輸入一個非負整數n,生成一張3的乘方表,輸出3?0~3?n
?? 的值。可調用冪函數計算3的乘方。

輸入格式:

輸入在一行中給出一個非負整數n。

輸出格式:

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

輸入樣例:

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,并調用sqrt函數求平方根。

輸入格式:

輸入在一行中給出一個正整數N。

輸出格式:

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

輸入樣例:

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的正整數N。

輸出格式:

在一行中輸出整數結果。

輸入樣例:

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;
}


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 3-1 求一元二次方程的根(20 分)本題目要求一元二次方程的根,結果保留2位小數。 輸入格式:輸入在一行中給出3...
    林之禾閱讀 23,480評論 0 7
  • 7-1 求奇數和(15 分)本題要求計算給定的一系列正整數中奇數的和。輸入格式:輸入在一行中給出一系列正整數,其間...
    林之禾閱讀 23,947評論 0 21
  • 7-1 計算攝氏溫度(10 分)給定一個華氏溫度F,本題要求編寫程序,計算對應的攝氏溫度C。計算公式:C=5×(F...
    林之禾閱讀 68,104評論 0 12
  • `7-1 求N分之一序列前N項和(15 分)本題要求編寫程序,計算序列 1 + 1/2 + 1/3 + ... 的...
    林之禾閱讀 13,447評論 0 7
  • 1、對于普通人來說,一生最重要的功課就是學會接受不完美的自己。 ——榮格。 2、「我可能這輩子也爬不上珠穆朗瑪峰了...
    嬉笑怒罵皆生活閱讀 408評論 0 0