当前位置: 首页 > news >正文

四方定理c++题解

题目描述

四方定理是数论中著名的一个定理,指任意一个自然数都可以拆成四个自然数的平方之和。例如:

25=1^2+2^2+2^2+4^2

对 25来说,还有其他方案:

25=0^2+0^2+3^2+4^2

以及

25=0^2+0^2+0^2+5^2

给定一个自然数 n ,请输出 n 的所有四平方拆分方案。

输入格式

单个整数:表示 n。

输出格式

若干行:每行四个由小到大排列的自然数,表示一种拆分方案。如果有多种方案,先输出首项较小的方案,对于首项相同的方案,先输出第二项较小的方案,其他情况以此类推。

数据范围

0≤n≤1,000,000

输入样例

25

输出样例

0 0 0 5
0 0 3 4
1 2 2 4

思路解析

用多重循环后sort。

AC代码 

#include<bits/stdc++.h>
using namespace std;
int main() {int n;cin>>n;vector<vector<int>> s;for(int i=0;i*i<=n;i++) {for(int j=i;j*j<=n-j*j;j++) {for(int k=j;k*k<=n-i*i-j*j;k++) {int l_sqrt=n-i*i-j*j-k*k;int l=static_cast<int>(sqrt(l_sqrt));if(l_sqrt==l*l&&l>=k) {s.push_back({i,j,k,l});}}}}sort(s.begin(),s.end());s.erase(unique(s.begin(),s.end()),s.end());for(const vector<int>& sol : s) {for(int val : sol) {cout<<val<<" ";}cout<<"\n";}return 0;
}

http://www.lryc.cn/news/151892.html

相关文章:

  • ZDH-权限模块
  • 漏洞修复:在应用程序中发现不必要的 Http 响应头
  • 什么是mkp勒索病毒,中了mkp勒索病毒怎么办?勒索病毒解密数据恢复
  • db2迁移至oracle
  • webpack学习使用
  • 按钮控件之2---QComboBox 复选按钮/复选框控件
  • 【数据分享】2006-2021年我国省份级别的燃气相关指标(免费获取\20多项指标)
  • C语言深入理解指针(非常详细)(二)
  • Web3j 继承StaticStruct的类所有属性必须为Public <DynamicArray<StaticStruct>>
  • Kubernetes(k8s)上安装Prometheus和Grafana监控
  • 黑马 软件测试从0到1 常用分类 模型 流程 用例
  • 面试中的商业思维:如何展示你对业务的理解
  • Docker切换文件系统为VFS
  • Spring Security存在认证绕过漏洞 CVE-2021-22096
  • 前端list列表自定义图标并设置大小
  • Multisim14.0仿真(五)三角波发生器
  • 使用安全复制命令scp在Windows系统和Linux系统之间相互传输文件
  • SOC总线学习记录之ICB(Internal Chip Bus)
  • rabbitMQ手动应答与自动应答
  • java对象创建的过程
  • WireShark流量抓包详解
  • 【密码学代码分享】突破ECDSA算法封装--JS无三方包纯手写ECDSA
  • stable diffusion实践操作-文生图
  • Spring容器及实例化
  • # Go学习-Day9
  • chatGPT如何在Java中使用
  • vue+axios——创建多个实例共用请求拦截器和响应拦截器(403错误信息不提示bug解决)——基础积累
  • 全球免费编程教育网站:Code.org
  • 构造函数与成员变量初始化
  • 使用Go env命令设置Go的环境