作業三

GaPb發表於2024-11-10

作者:tANGjIAqIAN

題目1

for迴圈

#include <stdio.h>
int main() {
    int n, i;
    long long nnn = 1; // 使用long long以儲存較大的階乘結果
    scanf("%d", &n);
    for (i = 1; i <= n; i++) {
        nnn *= i;
    }

    printf("%d! = %lld\n", n, nnn);
    return 0;
}

while迴圈

#include <stdio.h>

int main() {
    int n, i = 1;
    long long nnn = 1;
    scanf("%d", &n);
    while (i <= n) {
        nnn *= i;
        i++;
    }

    printf("%d! = %lld\n", n, nnn);
    return 0;
}

image

do-while迴圈

#include <stdio.h>

int main() {
    int n, i = 1;
    long long nnn = 1;
    scanf("%d", &n);
    do {
        nnn *= i;
        i++;
    } while (i <= n);

    printf("%d! = %lld\n", n, nnn);
    return 0;
}

image

題目2

#include <stdio.h>

// 函式用於計算絕對值
double absolute(double value) {
    if (value < 0) {
        return -value;
    } else {
        return value;
    }
}

int main() {
    double pi = 0.0;
    double term;
    int i = 0;
    const double epsilon = 1e-7;

    do {
        term = (i % 2 == 0 ? 1.0 : -1.0) / (2 * i + 1);
        pi += term;
        i++;
    } while (absolute(term) >= epsilon);

    pi *= 4.0; // 乘以4得到π的近似值

    printf("%f\n", pi);
    return 0;
}

image

題目3

#include <stdio.h>

int main() {
    int n1 = 0, n2 = 1, nextTerm, count = 0;

    printf("斐波那契數列的前20個數字是:\n");

    while (count < 20) {
        // 列印當前項
        printf("%d ", n1);

        // 計算下一項
        nextTerm = n1 + n2;
        n1 = n2; // 更新n1為前一項
        n2 = nextTerm; // 更新n2為當前項

        count++; // 增加計數
    }
    return 0;
}

image

題目4

#include <stdio.h>

int main() {
    int num, reversed = 0, remainder, original;

    // 提示使用者輸入一個整數
    printf("請輸入一個整數:");
    scanf("%d", &num);

    // 儲存原始數字
    original = num;

    // 反轉數字
    while (num != 0) {
        remainder = num % 10; // 獲取最後一位數字
        reversed = reversed * 10 + remainder; // 將數字新增到反轉數字中
        num /= 10; // 移除最後一位數字
    }

    // 輸出反轉後的數字
    printf("反轉後的數字是:%d\n", reversed);

    return 0;
}

image

相關文章