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

溫馨提示×

C語言完全平方數與效率優化

小樊
87
2024-06-20 01:29:29
欄目: 編程語言

在C語言中,判斷一個數是否為完全平方數有多種方法,其中比較常見的方法是利用循環來逐個判斷該數的平方是否等于目標數。例如:

#include <stdio.h>

int isPerfectSquare(int num) {
    for (int i = 1; i * i <= num; i++) {
        if (i * i == num) {
            return 1;
        }
    }
    return 0;
}

int main() {
    int num;
    printf("Enter a number: ");
    scanf("%d", &num);
    
    if (isPerfectSquare(num)) {
        printf("%d is a perfect square.\n", num);
    } else {
        printf("%d is not a perfect square.\n", num);
    }
    
    return 0;
}

然而,上述方法在判斷大數時效率較低,可以通過一些優化來提高效率,比如使用二分查找的方法來進行判斷。例如:

#include <stdio.h>

int isPerfectSquare(int num) {
    long left = 1, right = num;
    while (left <= right) {
        long mid = left + (right - left) / 2;
        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("Enter a number: ");
    scanf("%d", &num);
    
    if (isPerfectSquare(num)) {
        printf("%d is a perfect square.\n", num);
    } else {
        printf("%d is not a perfect square.\n", num);
    }
    
    return 0;
}

通過二分查找的方法,可以將時間復雜度降低到O(logn),從而提高效率。在實際應用中,根據具體情況選擇合適的方法來判斷完全平方數是很重要的。

0
密云县| 新化县| 陵川县| 綦江县| 永宁县| 卓尼县| 鹰潭市| 阜宁县| 大石桥市| 深州市| 渭源县| 瑞金市| 玉龙| 文成县| 乐昌市| 温宿县| 阿克陶县| 唐河县| 丽江市| 昂仁县| 桃园县| 拜城县| 墨玉县| 时尚| 图片| 府谷县| 马龙县| 富平县| 仪陇县| 无为县| 广德县| 天祝| 德令哈市| 喀什市| 察隅县| 辉县市| 芜湖县| 西乌| 浮梁县| 泽普县| 溧水县|