热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

打印给定范围内的所有完美方块

打印给定范围内的所有完美方块原文:https://www . geesforgeks . org/print-all-perfe

打印给定范围内的所有完美方块

原文:https://www . geesforgeks . org/print-all-perfect-squares-from-the-给定范围/

给定一个范围【L,R】,任务是打印给定范围内的所有完美方块。
例:

输入: L = 2,R = 24
输出: 4 9 16
输入: L = 1,R = 100
输出: 1 4 9 16 25 36 49 64 81 100

天真的做法:从 L 开始到 R 检查当前元素是否是完美的正方形。如果是,那么打印出来。
以下是上述办法的实施情况:

C++

// C++ implementation of the approach
#include
using namespace std;
// Function to print all the perfect
// squares from the given range
void perfectSquares(float l, float r)
{
    // For every element from the range
    for (int i = l; i <= r; i++) {
        // If current element is
        // a perfect square
        if (sqrt(i) == (int)sqrt(i))
            cout <    }
}
// Driver code
int main()
{
    int l = 2, r = 24;
    perfectSquares(l, r);
    return 0;
}

Java 语言(一种计算机语言,尤用于创建网站)

//Java implementation of the approach
import java.io.*;
class GFG
{
// Function to print all the perfect
// squares from the given range
static void perfectSquares(int l, int r)
{
    // For every element from the range
    for (int i = l; i <= r; i++)
    {
        // If current element is
        // a perfect square
        if (Math.sqrt(i) == (int)Math.sqrt(i))
            System.out.print(i + " ");
    }
}
// Driver code
public static void main (String[] args)
{
    int l = 2, r = 24;
    perfectSquares(l, r);
}
}
// This code is contributed by jit_t

Python 3

# Python3 implementation of the approach
# Function to print all the perfect
# squares from the given range
def perfectSquares(l, r):
    # For every element from the range
    for i in range(l, r + 1):
        # If current element is
        # a perfect square
        if (i**(.5) == int(i**(.5))):
            print(i, end=" ")
# Driver code
l = 2
r = 24
perfectSquares(l, r)
# This code is contributed by mohit kumar 29

C

// C# implementation of the approach
using System;
class GFG
{
// Function to print all the perfect
// squares from the given range
static void perfectSquares(int l, int r)
{
    // For every element from the range
    for (int i = l; i <= r; i++)
    {
        // If current element is
        // a perfect square
        if (Math.Sqrt(i) == (int)Math.Sqrt(i))
            Console.Write(i + " ");
    }
}
// Driver code
public static void Main(String[] args)
{
    int l = 2, r = 24;
    perfectSquares(l, r);
}
}
// This code is contributed by 29AjayKumar

java 描述语言


Output: 

4 9 16

它是含氧(氮)的溶液。此外,平方根数量的使用导致计算费用。
有效方法:这种方法基于这样一个事实,即在数字 L 之后的第一个完美正方形肯定是 ⌈sqrt(L)⌉ 的正方形。简单来说 L 的平方根会非常接近我们要找的平方根的数字。因此,该数字将为 pow(ceil(sqrt(L)),2)
第一个完美的正方形对这个方法很重要。现在原来的答案就隐藏在这个图案上面即0 1 4 9 16 25
0 和 1 的差是 1
1 和 4 的差是 3
4 和 9 的差是 5 以此类推……
意思就是两个完美正方形的差总是奇数。
现在,问题来了,要得到下一个数字必须加上什么,答案是 (sqrt(X) * 2) + 1 ,其中 X 是已知的完美正方形。
让当前完美方块为 4 ,那么下一个完美方块肯定会是 4 + (sqrt(4) * 2 + 1) = 9 。这里加数 5 ,下一个要加的数将是 7 然后是 9 以此类推……这样就组成了一系列奇数。
加法比执行乘法或求每个数的平方根计算成本低。
以下是上述方法的实施:

C++

// C++ implementation of the approach
#include
using namespace std;
// Function to print all the perfect
// squares from the given range
void perfectSquares(float l, float r)
{
    // Getting the very first number
    int number = ceil(sqrt(l));
    // First number's square
    int n2 = number * number;
    // Next number is at the difference of
    number = (number * 2) + 1;
    // While the perfect squares
    // are from the range
    while ((n2 >= l && n2 <= r)) {
        // Print the perfect square
        cout <        // Get the next perfect square
        n2 = n2 + number;
        // Next odd number to be added
        number += 2;
    }
}
// Driver code
int main()
{
    int l = 2, r = 24;
    perfectSquares(l, r);
    return 0;
}

Java 语言(一种计算机语言,尤用于创建网站)

// Java implementation of the approach
class GFG
{
// Function to print all the perfect
// squares from the given range
static void perfectSquares(float l, float r)
{
    // Getting the very first number
    int number = (int) Math.ceil(Math.sqrt(l));
    // First number's square
    int n2 = number * number;
    // Next number is at the difference of
    number = (number * 2) + 1;
    // While the perfect squares
    // are from the range
    while ((n2 >= l && n2 <= r))
    {
        // Print the perfect square
        System.out.print(n2 + " ");
        // Get the next perfect square
        n2 = n2 + number;
        // Next odd number to be added
        number += 2;
    }
}
// Driver code
public static void main(String[] args)
{
    int l = 2, r = 24;
    perfectSquares(l, r);
}
}
// This code is contributed by 29AjayKumar

Python 3

# Python3 implementation of the approach
from math import ceil, sqrt
# Function to print all the perfect
# squares from the given range
def perfectSquares(l, r) :
    # Getting the very first number
    number = ceil(sqrt(l));
    # First number's square
    n2 = number * number;
    # Next number is at the difference of
    number = (number * 2) + 1;
    # While the perfect squares
    # are from the range
    while ((n2 >= l and n2 <= r)) :
        # Print the perfect square
        print(n2, end= " ");
        # Get the next perfect square
        n2 = n2 + number;
        # Next odd number to be added
        number += 2;
# Driver code
if __name__ == "__main__" :
    l = 2; r = 24;
    perfectSquares(l, r);
# This code is contributed by AnkitRai01

C

// C# implementation of the approach
using System;
class GFG
{
// Function to print all the perfect
// squares from the given range
static void perfectSquares(float l, float r)
{
    // Getting the very first number
    int number = (int) Math.Ceiling(Math.Sqrt(l));
    // First number's square
    int n2 = number * number;
    // Next number is at the difference of
    number = (number * 2) + 1;
    // While the perfect squares
    // are from the range
    while ((n2 >= l && n2 <= r))
    {
        // Print the perfect square
        Console.Write(n2 + " ");
        // Get the next perfect square
        n2 = n2 + number;
        // Next odd number to be added
        number += 2;
    }
}
// Driver code
public static void Main(String[] args)
{
    int l = 2, r = 24;
    perfectSquares(l, r);
}
}
// This code is contributed by Rajput Ji

java 描述语言


Output: 

4 9 16

推荐阅读
  • 一个产品数组拼图|集合 2 (O(1)空间) ... [详细]
  • 本文详细介绍了如何在Java中实现RSA非对称加密技术,包括生成密钥对、加密和解密操作的具体实现步骤。 ... [详细]
  • 框图|中将_DA14531 学习笔记经验总结
    框图|中将_DA14531 学习笔记经验总结 ... [详细]
  • 本文详细介绍了如何通过Percona插件监控MySQL 5.7数据库,包括环境准备、插件安装、配置调整及数据测试等步骤,旨在为用户提供一个高效且稳定的监控解决方案。 ... [详细]
  • 本文探讨了使用Lighttpd与FastCGI实现分布式部署的方法。通过在中心服务器上配置Lighttpd负责请求转发,同时在多个远程服务器上运行FastCGI进程来处理实际业务逻辑,从而提高系统的负载能力和响应速度。 ... [详细]
  • 题目概述:给定一个数组,计算其中所有连续子序列中平均值不低于给定值k的数量。通过将每个元素减去k并计算前缀和,问题转化为二维数点问题。此问题可以通过离线处理,利用树状数组来高效解决。 ... [详细]
  • KKCMS代码审计初探
    本文主要介绍了KKCMS的安装过程及其基本功能,重点分析了该系统中存在的验证码重用、SQL注入及XSS等安全问题。适合初学者作为入门指南。 ... [详细]
  • 本文介绍了在 Android 开发中如何实现像素 (px)、缩放独立像素 (sp) 和密度独立像素 (dp) 之间的相互转换。这些方法对于确保应用在不同屏幕尺寸和分辨率上的适配至关重要。 ... [详细]
  • 本文详细介绍了C++标准模板库(STL)中各容器的功能特性,并深入探讨了不同容器操作函数的异常安全性。 ... [详细]
  • 首先说一下,这是我在CSDN上的第一个文章,其实这个账号早在几年前就申请了,不过当时只是为了下载一个资源,而且也不怎么懂信息技术相关的领域,后来就再也没怎么动过,直到今天我才开始使用这个账号 ... [详细]
  • 本文深入探讨了企业级开发框架NHibernate和Spring.NET的关键特性之一——面向方面编程(AOP)。文章不仅介绍了AOP的基本概念及其如何增强面向对象编程(OOP),还详细说明了Spring.NET中AOP的具体应用,包括事务管理和自定义方面的实现。 ... [详细]
  • OpenWrt 是一款高度可定制的嵌入式 Linux 发行版,广泛应用于无线路由器等领域,拥有超过百个预装软件包。本文详细探讨如何在 OpenWrt 上通过 Luci 构建自定义模块,以扩展其功能。 ... [详细]
  • 今天我在操作Git时遇到了一个问题,即我的仓库进入了分离的HEAD状态,这与之前讨论过的‘即使本地有更改,git push仍显示所有内容最新’的问题类似。 ... [详细]
  • 探索Arjun v1.3:高效挖掘HTTP参数的利器
    本文将详细介绍一款名为Arjun的开源安全工具,该工具能够帮助安全研究人员有效提取和分析HTTP参数。请注意,Arjun v1.3要求运行环境为Python 3.4及以上版本。 ... [详细]
  • 线程是创建并发的底层工具,因此具有一定的局限性。没有简单的方法可以从联合(Join)线程得到“返回值”。因此必须创建一些共享域。当抛出一个异常时,捕捉和处理异常也是麻烦的。线程完成之后,无法再次启动该 ... [详细]
author-avatar
117061771_af0556
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有