首页 > 编程语言 >【C++】力扣101-平方数之和

【C++】力扣101-平方数之和

时间:2024-02-03 11:57:04浏览次数:29  
标签:101 long 力扣 C++ judge include

给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。

使用双指针:

#include <iostream>
#include <math.h>
using namespace std;
bool judge(long c) {
  if (c < 0) return false;
  long a = 0;
  long b = (int)sqrt(c);
  long sum = 0;
  while (a <= b) {
    sum = a * a + b * b;
    if (sum == c) {
      return true;
    }
    if (sum < c) {
      ++a;
    }
    else {
      --b;
    }
  }
  return false;
}
int main(void) {
  int c = 0;
  cout << "请输入一个非负整数:";
  cin >> c;
  if (judge(c)) {
    cout << "存在两个整数 a 和 b,使得 a2 + b2 = c !\n";
  }
  else {
    cout << "不存在两个整数 a 和 b,使得 a2 + b2 = c !\n";
  }

  return 0;
}

标签:101,long,力扣,C++,judge,include
From: https://www.cnblogs.com/smartlearn/p/18004497

相关文章

  • 12. C++ 类其实也是一种作用域
    C++类其实也是一种作用域类其实也是一种作用域,每个类都会定义它自己的作用域。在类的作用域之外,普通的成员只能通过对象(可以是对象本身,也可以是对象指针或对象引用)来访问,静态成员既可以通过对象访问,又可以通过类访问,在类内用typedef定义的类型只能通过类来访问。下面的例子使......
  • 【C++】类和对象(一)[类的相关定义及this指针]
    C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。C++在C语言的基础上增加了面向对象编程,C++支持面向对象程序设计。类是C++的核心特性,通常被称为用户定义的类......
  • Qt/C++音视频开发66-音频变速不变调/重采样/提高音量/变速变调/倍速播放/sonic库使用
    一、前言之前在做倍速这个功能的时候,发现快速播放会有滴滴滴的破音出现,正常1倍速没有这个问题,尽管这个破音间隔很短,要放大音量才能听到,但是总归是不完美的,后面发现,通过修改qaudiooutput的采样率,可以规避这个问题,破音不在出现了,但是音调变了,倍速越大变得越快,人声越发不清晰,变得尖......
  • P10118 『STA - R4』And 题解
    题目看到位运算,直接二进制拆分考虑。首先\(x\operatorname{AND}y=B\),设\(x=B+m\),\(y=B+n\),知道\(x+y=A\),所以设\(W=n+m=A-2\timesB\),\(y-x\)等价于\(n-m\)。因为已知\(x\operatorname{AND}y=B\),所以\(n\operatorname{AND}m=0\),着意味着在二进制下\(n\)和\(m\)不......
  • 在 Windows 10 上使用 Visual Studio 2022 C++ 桌面开发
    工具下载链接:https://pan.quark.cn/s/c70b23901ccb环境介绍在今天的快速发展的软件开发行业中,选择合适的开发环境是非常关键的一步。对于C++开发人员来说,VisualStudio2022(VS2022)是一个强大的集成开发环境(IDE),特别是在Windows10操作系统中。安装VisualStudio2022本文将引导您......
  • 力扣 34. 在排序数组中查找元素的第一个和最后一个位置
    Problem: 34.在排序数组中查找元素的第一个和最后一个位置思路找到大于等于target的下标,然后遍历之后的数组,找到最后的下标。classSolution{public:intf(vector<int>&nums,inttarget){intl=0,r=nums.size()-1;intmid=floor(l+(r-l)*1.0/2);......
  • C++编程练习||创建一个名为Rational的类,进行分数运算。
    题目:创建一个名为Rational的类,进行分数运算。创建一个名为Rational的类,进行分数运算。用整数变量表示类的private数据-numerator(分子)和denominator(分母)。提供一个带默认值的构造函数,并且它应该以简化的形式保存分数。例如分数2/4应在对象中保存为numerator为1,denominator为2的形式。......
  • C++编程练习||Account类:创建一个名为Account的类,银行可以使用它表示客户的银行帐户||I
    1.Account类题目:创建一个名为Account的类,银行可以使用它表示客户的银行帐户。这个类应该包括一个类型为double的数据成员,表示帐户余额。这个类提供一个构造函数,它接受初始余额并用它初始化数据成员。这个构造函数应当确认初始余额的有效性,保证它大于或等于0。否则,余额应设置为0......
  • P10118 『STA - R4』And
    P10118『STA-R4』And题意:给定A,B,求\(\sumy-x\),其中x,y满足:x<yx+y=Ax&y=B对于加运算和与运算,有x+y=2(x&y)+(x^y)。那么令C=x^y=A-2B。这里判断下无解情况,C<0,显然无解。C^B!=0,与位运算性质矛盾,无解。当然如果C<0,那......
  • llvm官网上推荐的c++网站
    TheC++StandardTemplateLibraryLLVMmakesheavyuseoftheC++StandardTemplateLibrary(STL),perhapsmuchmorethanyouareusedto,orhaveseenbefore.Becauseofthis,youmightwanttodoalittlebackgroundreadinginthetechniquesusedandca......