1. 程式人生 > >The programming summary (Seventh week)

The programming summary (Seventh week)

問題 拆分 無法獲得 無法 截圖 第一步 math event 組合

題目1 生成3的乘方表

(1)實驗代碼

#include <stdio.h>
int main(void)
{
    int n;
    int i;
    int result;
    scanf("%d",&n);
    i=0;
    for (i;i<=n;i++)
    {
        result=pow(3,i);
        printf("pow(3,%d) = %d\n",i,result);
    }
    return 0;
}

(2)設計思路

第一步:定義變量
第二步:輸入變量,賦初值
第三步:用for循環
第四步:輸出結果

(3)本題調試過程碰到問題及解決辦法(3)本題調試過程碰到問題及解決辦法

輸出內容應在循環中寫入,每循環一次,輸出一次。

(4)運行結果截圖

(考試時間已到,無法獲得截圖)

題目2 求平方根序列前N項和

(1)實驗代碼

#include <stdio.h>
#include <math.h>
int main(void)
{
    double a = 1, S = 0;
    int N, i;

    scanf("%d", &N);
    for (i = 0; i < N; i++)
    {
         S = S + sqrt(a);
        a++;
    }
    printf("sum = %.2lf", S);

    return 0;
}

(2)設計思路

第一步:定義變量
第二步:輸入變量,賦初值
第三步:用for循環,S每次循環加上sqrt(a)
第四步:輸出

(3)本題調試過程碰到問題及解決辦法

本題無錯誤,一次性通過

(4)運行結果截圖

(考試時間已到,無法獲得截圖)

題目3 求冪之和

(1)實驗代碼

#include<stdio.h>
#include<math.h>
int main(void)
{
    int i, sum, n, result, a;

    scanf("%d", &n);
    a = 0;
    for(i = 1;i <= n;i++)
    {
        sum = pow(2,i);
        a = a+sum;
    }
    printf("result = %d",a);

    return 0;
}

(2)設計思路

第一步:定義math函數,用於pow函數。
第二步:輸入變量,賦初值
第三步:用for循環
第四步:輸出a

(3)本題調試過程碰到問題及解決辦法

本題無錯誤,一次通過。

(4)運行結果截圖

(考試時間已到,無法獲得截圖)

題目4 求組合數

(1)實驗代碼

#include<stdio.h>
double fact (int n);

int main(void)
{
    int i, m,n;
    double result;

    scanf("%d %d",&m, &n);

    result=fact(n)/(fact(m)*fact(n-m));

    printf("result = %.0f\n",result);

    return 0;
}

int fact(int n)
{
    int i;
    int product;

    product=1;
    for(i=1;i<=n;i++)
    {
        product=product*i;
    }

    return product;
}

(2)設計思路

第一步:定義fact函數,定義變量
第二步:輸入m、n的值
第三步:調用fact函數,計算result
第四步:輸出result

(3)本題調試過程碰到問題及解決辦法

本題就一些細節問題,不斷調試後解決了

(4)運行結果截圖

(考試時間已到,無法獲得截圖)

題目5 驗證“哥德巴赫猜想”

(1)實驗代碼

#include <stdio.h>
#include <math.h>
int prime(int n);

int main(void)
{
    int N;
    scanf("%d", &N);
    for (int i = 2; i < N; i++)
    {
        if (prime(i) && prime(N - i))
        {
            printf("%d = %d + %d\n", N, i, N - i);
            return 0;
        }
    }
    return 0;
}

int prime(int n)
{
    if (n == 1)
        return 0;
    if (n == 2)
        return 1;
    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n%i == 0)
            return 0;
    }
    return 1;
}

(2)設計思路

第一步:定義prime函數,定義變量
第二步:輸入變量
第三步:用for循環
第四步:用if語句來判斷拆分數是否為素數
第五步:調用自定義函數prime來判斷
第六步:輸出答案

(3)本題調試過程碰到問題及解決辦法

自定義函數中的循環次數為sqrt(n)的原因是:sqrt(n)是循環次數最少,但能包含所有因子的最佳循環次數

(4)運行結果截圖

(考試時間已到,無法獲得截圖)

The programming summary (Seventh week)