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

计算一个数组中可以表示为两个完美正方形之差的元素

计算一个数组中可以表示为两个完美正方形之差的元素原文:https

计算一个数组中可以表示为两个完美正方形之差的元素

原文:https://www . geeksforgeeks . org/count-可以表示为两个完美正方形之差的数组元素/

给定一个数组 arr[] ,任务是计算数组中可以用两个完美平方数之差的形式表示的元素个数。a^2 - b^2
例:

输入: arr[] = {1,2,3}
输出: 2
解释:
有两个这样的元素可以表示为
两个数的平方之差–
元素 1–1^2 - 0^2 = 1
元素 3–2^2 - 1^2 = 3
因此,这样的元素计数为 2。
输入: arr[] = {2,5,6}
输出: 1
解释:
这样的元素只有一个。即–
元素 5–3^2 - 2^2 = 9 - 4 = 5
因此,该元素的计数为 1。

方法:问题中的关键观察点是可以表示为两个数的平方差的数,当除以 4 时,绝不会得到 2 作为余数。
例如:

N = 4 => 4^2 - 0^2
N = 6 = >不能表示为6 \% 4 = 2
N = 8 =>3^2 - 1^2
N = 10 =>不能表示为10 \% 4 = 2

因此,迭代数组并计算数组中此类元素的数量。
下面是上述方法的实现:

C++


// C++ implementation to count the
// number of elements which can be
// represented as the difference
// of the two square
#include <bits/stdc++.h>
using namespace std;
// Function to count of such elements
// in the array which can be represented
// as the difference of the two squares
int count_num(int arr[], int n)
{
    // Initialize count
    int count = 0;
    // Loop to iterate
    // over the array
    for (int i = 0; i < n; i++)
        // Condition to check if the
        // number can be represented
        // as the difference of squares
        if ((arr[i] % 4) != 2)
            count++;
    cout << count;
    return 0;
}
// Driver code
int main()
{
    int arr[] = { 1, 2, 3 };
    int n = sizeof(arr) / sizeof(arr[0]);
    count_num(arr, n);
    return 0;
}


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


// Java implementation to count the
// number of elements which can be
// represented as the difference
// of the two square
class GFG{
// Function to count of such elements
// in the array which can be represented
// as the difference of the two squares
static void count_num(int []arr, int n)
{
    // Initialize count
    int count = 0;
    // Loop to iterate
    // over the array
    for(int i = 0; i < n; i++)
    {
       // Condition to check if the
       // number can be represented
       // as the difference of squares
       if ((arr[i] % 4) != 2)
           count++;
    }
    System.out.println(count);
}
// Driver code
public static void main (String[] args)
{
    int arr[] = { 1, 2, 3 };
    int n = arr.length;
    count_num(arr, n);
}
}
// This code is contributed by AnkitRai01


Python 3


# Python3 implementation to count the
# number of elements in the array
# which can be represented as difference
# of the two elements
# Function to return the
# Count of required count
# of such elements
def count_num(arr, n):
    # Initialize count
    count = 0
    # Loop to iterate over the
    # array of elements
    for i in arr:
        # Condition to check if the
        # number can be represented
        # as the difference
        # of two squares
        if ((i % 4) != 2):
            count = count + 1
    return count
# Driver Code
if __name__ == "__main__":
    arr = [1, 2, 3]
    n = len(arr)
    # Function Call
    print(count_num(arr, n))


C


// C# implementation to count the
// number of elements which can be
// represented as the difference
// of the two square
using System;
class GFG{
// Function to count of such elements
// in the array which can be represented
// as the difference of the two squares
static void count_num(int []arr, int n)
{
    // Initialize count
    int count = 0;
    // Loop to iterate
    // over the array
    for(int i = 0; i < n; i++)
    {
        // Condition to check if the
        // number can be represented
        // as the difference of squares
        if ((arr[i] % 4) != 2)
            count++;
    }
    Console.WriteLine(count);
}
// Driver code
public static void Main(string[] args)
{
    int []arr = { 1, 2, 3 };
    int n = arr.Length;
    count_num(arr, n);
}
}
// This code is contributed by shivanisinghss2110


java 描述语言


<script>
    // Javascript implementation to count the
    // number of elements which can be
    // represented as the difference
    // of the two square
    // Function to count of such elements
    // in the array which can be represented
    // as the difference of the two squares
    function count_num(arr, n)
    {
        // Initialize count
        let count = 0;
        // Loop to iterate
        // over the array
        for (let i = 0; i < n; i++)
            // Condition to check if the
            // number can be represented
            // as the difference of squares
            if ((arr[i] % 4) != 2)
                count++;
        document.write(count);
        return 0;
    }
    let arr = [ 1, 2, 3 ];
    let n = arr.length;
    count_num(arr, n);
script>

Output: 

2


推荐阅读
  • 本文将继续探讨 JavaScript 函数式编程的高级技巧及其实际应用。通过一个具体的寻路算法示例,我们将深入分析如何利用函数式编程的思想解决复杂问题。示例中,节点之间的连线代表路径,连线上的数字表示两点间的距离。我们将详细讲解如何通过递归和高阶函数等技术实现高效的寻路算法。 ... [详细]
  • 深入解析C语言中结构体的内存对齐机制及其优化方法
    为了提高CPU访问效率,C语言中的结构体成员在内存中遵循特定的对齐规则。本文详细解析了这些对齐机制,并探讨了如何通过合理的布局和编译器选项来优化结构体的内存使用,从而提升程序性能。 ... [详细]
  • 利用 JavaScript 和 Node.js 验证时间的有效性
    本文探讨了如何使用 JavaScript 和 Node.js 验证时间的有效性。通过编写一个 `isTime` 函数,我们可以确保输入的时间格式正确且有效。该函数利用正则表达式匹配时间字符串,检查其是否符合常见的日期时间格式,如 `YYYY-MM-DD` 或 `HH:MM:SS`。此外,我们还介绍了如何处理不同时间格式的转换和验证,以提高代码的健壮性和可靠性。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 深入解析JavaScript柯里化的实现机制及其应用场景
    本文深入探讨了JavaScript中柯里化的实现机制及其应用场景。通过详细的示例代码,文章全面解析了柯里化的工作原理和实际应用,为读者提供了宝贵的学习资源,有助于提升编程技能和解决实际开发中的问题。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • 2018 HDU 多校联合第五场 G题:Glad You Game(线段树优化解法)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6356在《Glad You Game》中,Steve 面临一个复杂的区间操作问题。该题可以通过线段树进行高效优化。具体来说,线段树能够快速处理区间更新和查询操作,从而大大提高了算法的效率。本文详细介绍了线段树的构建和维护方法,并给出了具体的代码实现,帮助读者更好地理解和应用这一数据结构。 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 在配置Nginx的SSL证书后,虽然HTTPS访问能够正常工作,但HTTP请求却会遇到400错误。本文详细解析了这一问题,并提供了Nginx配置的具体示例。此外,还深入探讨了DNS服务器证书、SSL证书的申请与安装流程,以及域名注册、查询方法和CDN加速技术的应用,帮助读者全面了解相关技术细节。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 本文详细探讨了使用纯JavaScript开发经典贪吃蛇游戏的技术细节和实现方法。通过具体的代码示例,深入解析了游戏逻辑、动画效果及用户交互的实现过程,为开发者提供了宝贵的参考和实践经验。 ... [详细]
author-avatar
八戒走你
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有