亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C語言完全平方數代碼如何優化

小樊
83
2024-06-20 01:21:26
欄目: 編程語言

在C語言中判斷一個數是否為完全平方數,可以通過以下代碼實現:

#include <stdio.h>

int isPerfectSquare(int num) {
    int i = 1;
    while (num > 0) {
        num -= i;
        i += 2;
    }
    return num == 0;
}

int main() {
    int num;
    printf("請輸入一個整數:");
    scanf("%d", &num);
    if (isPerfectSquare(num)) {
        printf("%d是一個完全平方數\n", num);
    } else {
        printf("%d不是一個完全平方數\n", num);
    }
    return 0;
}

這段代碼使用了一個循環來判斷一個數是否為完全平方數,如果是完全平方數,那么經過循環后num會變成0;否則num會小于0。這種方法比較直接,但不是最優化的方法。

另一種優化的方法是使用二分查找的方式來判斷一個數是否為完全平方數,代碼如下:

#include <stdio.h>

int isPerfectSquare(int num) {
    if (num < 0) {
        return 0;
    }
    
    int left = 0, right = num;
    while (left <= right) {
        long long mid = left + (right - left) / 2;
        long long square = mid * mid;
        
        if (square == num) {
            return 1;
        } else if (square < num) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    
    return 0;
}

int main() {
    int num;
    printf("請輸入一個整數:");
    scanf("%d", &num);
    if (isPerfectSquare(num)) {
        printf("%d是一個完全平方數\n", num);
    } else {
        printf("%d不是一個完全平方數\n", num);
    }
    return 0;
}

這段代碼使用了二分查找的方式來判斷一個數是否為完全平方數,時間復雜度為O(logn),比上一種方法更加高效。

0
手机| 滦南县| 栾川县| 平阳县| 阜康市| 襄樊市| 赣榆县| 泸西县| 惠来县| 泸州市| 桂林市| 崇文区| 健康| 天柱县| 水富县| 石棉县| 环江| 蕲春县| 大安市| 南召县| 二手房| 安图县| 祁连县| 东台市| 禹城市| 阆中市| 河曲县| 桐柏县| 尼木县| 赤峰市| 修水县| 留坝县| 中西区| 根河市| 仙游县| 大理市| 白河县| 桂林市| 溆浦县| 郴州市| 淳安县|