C语言完全平方数算法有哪些

   2024-10-08 8380
核心提示:暴力法:遍历所有可能的完全平方数,判断是否等于给定的数。#include stdio.hint isPerfectSquare(int num) {for (int i = 1; i

暴力法:遍历所有可能的完全平方数,判断是否等于给定的数。

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

这两种算法都可以判断一个数是否为完全平方数,第二种算法的效率更高一些。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号