原文作者:疼疼蛇

原文标题:【蓝桥杯省赛JavaB组真题详解】四平方和(2016)

发布时间:2021-02-26 15:00:01

题目描述

四平方和

四平方和定理,又称为拉格朗日定理:

每个正整数都可以表示为至多4个正整数的平方和。

如果把0包括进去,就正好可以表示为4个数的平方和。

比如:

5 = 02 + 02 + 12 + 22

7 = 12 + 12 + 12 + 22

(^符号表示乘方的意思)

对于一个给定的正整数,可能存在多种平方和的表示法。

要求你对4个数排序:

0 <= a <= b <= c <= d

并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法

程序输入为一个正整数N (N<5000000)

要求输出4个非负整数,按从小到大排序,中间用空格分开

例如,输入:

5

则程序应该输出:

0 0 1 2

再例如,输入:

12

则程序应该输出:

0 2 2 2

再例如,输入:

773535

则程序应该输出:

1 1 267 838

资源约定:

峰值内存消耗(含虚拟机) < 256M

CPU消耗 < 3000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。

注意:主类的名字必须是:Main,否则按无效代码处理。

解题思路

我觉得这题最关键的地方在于联合主键升序,一开始没明白也没注意结果答案就只有部分符合,

联合主键升序意思是abcd四个数字合起来组成的数字按升序排列

例如这题输入12的话

有a=0、b=2、c=2、d=2的情况

也有a=1、b=1、c=1、d=3的情况

第一种情况按联合主键升序的话先出现,因为0222<1113

(个人理解,有误感谢指出)

参考代码

import java.util.Scanner;

public class Main {

static int n;

static int nq;

static int[] arr = new int[4];

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

n = sc.nextInt();

nq = (int) Math.sqrt(n);

f();

System.out.println(arr[0] + " " + arr[1] + " " + arr[2] + " " + arr[3]);

sc.close();

}

private static void f() {

for (arr[0] = 0; arr[0] < nq + 1; arr[0]++) {

for (arr[1] = arr[0]; arr[1] < nq + 1; arr[1]++) {

for (arr[2] = arr[1]; arr[2] < nq + 1; arr[2]++) {

for (arr[3] = arr[2]; arr[3] < nq + 1; arr[3]++) {

if (check()) {

return;

}

}

}

}

}

}

private static boolean check() {

int sum = arr[0] * arr[0] + arr[1] * arr[1] + arr[2] * arr[2] + arr[3] * arr[3];

if (sum == n)

return true;

else

return false;

}

}

Post Views:

9

java dfs算法蓝桥杯题_【蓝桥杯省赛JavaB组真题详解】四平方和(2016)_疼疼蛇的博客-CSDN博客...相关推荐

  1. 蓝桥杯历年省赛JAVA-B组真题汇总及题目详解

    蓝桥杯 历年省赛JAVA-B组真题汇总及题目详解 题目大致介绍: 第一题到第三题以及第六题是结果填空,方法不限得到最后结果就行. 第四题和第五题是代码填空题,主要考察算法基本功和编程基本功. 第八题到 ...

  2. 【每日蓝桥】2、一三年省赛JavaC组真题“组素数”

    你好呀,我是灰小猿,一个超会写bug的程序猿! 欢迎大家关注我的专栏"每日蓝桥",该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想.数据结构等内容, ...

  3. 第六届蓝桥杯省赛javaB组真题及答案

    第一题:三角形面积如图1所示.图中的所有小方格面积都是1.那么,图中的三角形面积应该是多少呢? 答案:88-84/2-64/2-82/2=28: 第二题:立方变自身观察下面的现象,某个数字的立方,按位 ...

  4. 【蓝桥杯省赛JavaB组真题详解】数字三角形(2020)

    题目描述 数字三角形 上图给出了一个数字三角形.从三角形的顶部到底部有很多条不同的路径. 对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和. 路径上的每一步只能从一个数走到下 ...

  5. 【蓝桥杯省赛JavaB组真题详解】立方变自身(2015)

    题目描述 立方变自身 观察下面的现象,某个数字的立方,按位累加仍然等于自身. 1^3 = 1 8^3 = 512 5+1+2=8 17^3 = 4913 4+9+1+3=17 - 请你计算包括1,8, ...

  6. 第八届蓝桥杯(软件类)C++省赛A组真题题解

    文章目录 题目链接 A组真题 题目结构 第一题 迷宫 第二题 跳蚱蜢 第三题 魔方状态 第四题 方格分割 第五题 字母组串 第六题 最大公共子串 第七题 正则问题 第八题 包子凑数 第九题 分巧克力 ...

  7. 2019年第十届蓝桥杯C/C++ 省赛B组真题+题解

     答案和代码仅供参考,比赛时倒数第二题花了太多时间,导致没时间写填空题最后一题和大题最后一题,唉,总的来说今年的题目比去年的简单,今年的蓝桥杯可真是"暴力杯".先放这么多东西吧,以 ...

  8. 【2023蓝桥杯】2017年第八届C/C++A组真题(解析笔记)

    目录 T1:迷宫 - 暴力dfs+标注  T2:跳蚱蜢 - 9数算式 全排列 + 枚举乘号位置 T3:魔方状态 - 模拟 + 判重 (高手入*****) T4:方格分割 - dfs + 从中心点去切割 ...

  9. 2019年第十届蓝桥杯 C / C ++省赛 B 组真题题解

    A: 组队 输入数据 编号 号位1 2 3 4 51 97 90 0 0 0 2 92 85 96 0 0 3 0 0 0 0 93 4 0 0 0 80 86 5 89 83 97 0 0 6 82 ...

最新文章

  1. yii2 获取同一个账号登录的所有session_前端登录方案?这一篇就够了
  2. SpringBoot集成jsp(附源码)+遇到的坑
  3. Python 3.x 格式化输出字符串 % format 笔记
  4. 【Vegas2010】cnblogs(博客园)排名原来是这样算的~
  5. jquery实现截取pc图片_如何优雅的对网页截取长图
  6. idea将本地项目推送至远程仓库(图形化版本01)
  7. 【Python成长之路】python 基础篇 -- global/nonlocal关键字使用
  8. 来自1976,Hinton写的第一篇论文火了:胶囊网络,是40年前的胶囊?
  9. ubuntu 新建用户
  10. sundancest201驱动_驱动支持列表
  11. 酱茄社区论坛圈子小程序pro更新与WordPress开源版小程序下载
  12. 清华大学计算机系本科课程,清华大学计算机系本科生全部课程详细介绍
  13. 静态淘宝热卖界面(纯CSS)
  14. oracle中的dbf是什么文件,ORACLE数据库 DBF数据恢复-dbf是什么文件
  15. firefly-rk3288使用USB GADGET实现大容量存储脚本
  16. 瀚高数据库安全配置要求
  17. GDS和OTA未来之路
  18. 金融数据api接口记录(二)
  19. 知识图谱-KGE-第三方库:LibKGE库【包含:TransE、TransH、ConvE、DistMult、ComplEx、TuckER、SimplE...】
  20. 计算机语言怎么学,教你如何学习计算机编程语言

热门文章

  1. mysql-5.1.73-8.el6_在centos中安装mysql详细步骤说明
  2. php做游戏登录服务器,游戏登陆服务器php简单实现
  3. kafka topic 目录存放在哪_Kafka系列文章之安装测试-第2篇
  4. 四川大学java语言程序设计_四川大学2014年计算机(软件)学院Java语言设计期末考试B卷程序.doc...
  5. java web 开发之写在前面(0)
  6. mysql中对比月_详解Mysql中日期比较大小的方法
  7. java容易掉发吗_容易被忽略的面试题—Java高并发
  8. k8s jenkins pipeline 多分支发布_给 Jenkins 换一个新皮肤:BlueOcean
  9. 【Liunx服务器】阿里云服务器下部署多个tomcat服务
  10. 【Python】IDE环境Pycharm运行虚拟环境Django