首页 > 试题广场 >

平方根

[编程题]平方根
  • 热度指数:25341 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定一个正整数 n,求 \sqrt{n} 的整数部分,即对 \sqrt{n} 向下取整的结果。

\hspace{15pt}例如,\sqrt{5}=2.236\ldots 向下取整后为 2\sqrt{16}=4.000\ldots 向下取整后为 4

输入描述:
\hspace{15pt}在一行中输入一个整数 n \left(1 \leqq n \leqq 10^9\right)


输出描述:
\hspace{15pt}输出一个整数,表示 \sqrt{n} 向下取整后的值。
示例1

输入

5

输出

2

说明

\sqrt{5}\approx2.236,向下取整后为 2
示例2

输入

16

输出

4

说明

\sqrt{16}=4.000,向下取整后为 4
#include <stdio.h>

int main() {
    int n,a;
    scanf("%d",&n);
    for(a=0;a<n;a++){
        if((a*a)<=n&&(a+1)*(a+1)>n)
            break;    
    }
printf("%d",a);
    
    
   
    return 0;
}

发表于 2025-11-10 15:31:49 回复(0)
发表于 2025-10-31 22:49:19 回复(0)
int main() {
    int a, b=1,c;
    scanf("%d",&a);
   while(1){
    c=b*b;
    if(c>=a){
        break;
    }
    b++;
   }
   if(b*b==a){
   printf("%d",b);}
   else if(b*b>a){
    printf("%d",b-1);
   }
 return 0;
}

 return 0;
}
发表于 2025-10-18 17:51:09 回复(0)
#include <math.h>
#include <stdio.h>

int main() {
    unsigned int a, b;  //定义成无符号整数

    scanf("%d\n\r", &a);

    b = sqrtf(a);

    printf("%d\n\r", b);

    return 0;
}
发表于 2025-10-02 11:50:52 回复(0)
#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);
    for(int i=0;i<=n/2+1;i++){
        if((i+1)*(i+1)>n){//注意n为0或1的情况
            printf("%d\n",i);
            break;
        }
    }

    return 0;
}
发表于 2025-09-28 13:33:16 回复(0)
按题目意思来。
#include <stdio.h>
#include <math.h>

int main() {
    
    float n = .0f;

    scanf("%f", &n);

    printf("%d",(int)floorf(sqrtf(n)));

    return 0;
}


发表于 2025-08-04 18:50:57 回复(0)
#include <stdio.h>
#include <math.h>
int main() {
    int b = 0;
    scanf("%d", &b);
    printf("%d", (int)sqrt (b));
    return 0;
}
笨鸟常规解法
发表于 2025-08-01 22:08:10 回复(0)
#include <stdio.h>
#include <math.h>
    int main() {
        int a;
        scanf("%d", &a);
        
        int b = sqrt(a);
        
        printf("%d", b);
        return 0;
    }

发表于 2025-07-27 00:14:10 回复(0)
#include <stdio.h>
#include<math.h>
int main() {
    int a,b;
    scanf("%d %d", &a) ;
    b = sqrt(a);
    printf("%d\n", b );
    return 0;
}
发表于 2025-06-13 17:45:03 回复(0)
求大神解答为什么会超时
int main() {
    int a=0;
    int b = 1;
    scanf("%d", &a);
    while (b * b <= a) {
    
        b++;
    }
    printf("%d", b-1);
    return 0;
}

发表于 2025-05-23 13:10:00 回复(2)