java dfs算法蓝桥杯题_【蓝桥杯省赛JavaB组真题详解】四平方和(2016)_疼疼蛇的博客-CSDN博客...
原文作者:疼疼蛇
原文标题:【蓝桥杯省赛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博客...相关推荐
- 蓝桥杯历年省赛JAVA-B组真题汇总及题目详解
蓝桥杯 历年省赛JAVA-B组真题汇总及题目详解 题目大致介绍: 第一题到第三题以及第六题是结果填空,方法不限得到最后结果就行. 第四题和第五题是代码填空题,主要考察算法基本功和编程基本功. 第八题到 ...
- 【每日蓝桥】2、一三年省赛JavaC组真题“组素数”
你好呀,我是灰小猿,一个超会写bug的程序猿! 欢迎大家关注我的专栏"每日蓝桥",该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想.数据结构等内容, ...
- 第六届蓝桥杯省赛javaB组真题及答案
第一题:三角形面积如图1所示.图中的所有小方格面积都是1.那么,图中的三角形面积应该是多少呢? 答案:88-84/2-64/2-82/2=28: 第二题:立方变自身观察下面的现象,某个数字的立方,按位 ...
- 【蓝桥杯省赛JavaB组真题详解】数字三角形(2020)
题目描述 数字三角形 上图给出了一个数字三角形.从三角形的顶部到底部有很多条不同的路径. 对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和. 路径上的每一步只能从一个数走到下 ...
- 【蓝桥杯省赛JavaB组真题详解】立方变自身(2015)
题目描述 立方变自身 观察下面的现象,某个数字的立方,按位累加仍然等于自身. 1^3 = 1 8^3 = 512 5+1+2=8 17^3 = 4913 4+9+1+3=17 - 请你计算包括1,8, ...
- 第八届蓝桥杯(软件类)C++省赛A组真题题解
文章目录 题目链接 A组真题 题目结构 第一题 迷宫 第二题 跳蚱蜢 第三题 魔方状态 第四题 方格分割 第五题 字母组串 第六题 最大公共子串 第七题 正则问题 第八题 包子凑数 第九题 分巧克力 ...
- 2019年第十届蓝桥杯C/C++ 省赛B组真题+题解
答案和代码仅供参考,比赛时倒数第二题花了太多时间,导致没时间写填空题最后一题和大题最后一题,唉,总的来说今年的题目比去年的简单,今年的蓝桥杯可真是"暴力杯".先放这么多东西吧,以 ...
- 【2023蓝桥杯】2017年第八届C/C++A组真题(解析笔记)
目录 T1:迷宫 - 暴力dfs+标注 T2:跳蚱蜢 - 9数算式 全排列 + 枚举乘号位置 T3:魔方状态 - 模拟 + 判重 (高手入*****) T4:方格分割 - dfs + 从中心点去切割 ...
- 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 ...
最新文章
- yii2 获取同一个账号登录的所有session_前端登录方案?这一篇就够了
- SpringBoot集成jsp(附源码)+遇到的坑
- Python 3.x 格式化输出字符串 % format 笔记
- 【Vegas2010】cnblogs(博客园)排名原来是这样算的~
- jquery实现截取pc图片_如何优雅的对网页截取长图
- idea将本地项目推送至远程仓库(图形化版本01)
- 【Python成长之路】python 基础篇 -- global/nonlocal关键字使用
- 来自1976,Hinton写的第一篇论文火了:胶囊网络,是40年前的胶囊?
- ubuntu 新建用户
- sundancest201驱动_驱动支持列表
- 酱茄社区论坛圈子小程序pro更新与WordPress开源版小程序下载
- 清华大学计算机系本科课程,清华大学计算机系本科生全部课程详细介绍
- 静态淘宝热卖界面(纯CSS)
- oracle中的dbf是什么文件,ORACLE数据库 DBF数据恢复-dbf是什么文件
- firefly-rk3288使用USB GADGET实现大容量存储脚本
- 瀚高数据库安全配置要求
- GDS和OTA未来之路
- 金融数据api接口记录(二)
- 知识图谱-KGE-第三方库:LibKGE库【包含:TransE、TransH、ConvE、DistMult、ComplEx、TuckER、SimplE...】
- 计算机语言怎么学,教你如何学习计算机编程语言
热门文章
- mysql-5.1.73-8.el6_在centos中安装mysql详细步骤说明
- php做游戏登录服务器,游戏登陆服务器php简单实现
- kafka topic 目录存放在哪_Kafka系列文章之安装测试-第2篇
- 四川大学java语言程序设计_四川大学2014年计算机(软件)学院Java语言设计期末考试B卷程序.doc...
- java web 开发之写在前面(0)
- mysql中对比月_详解Mysql中日期比较大小的方法
- java容易掉发吗_容易被忽略的面试题—Java高并发
- k8s jenkins pipeline 多分支发布_给 Jenkins 换一个新皮肤:BlueOcean
- 【Liunx服务器】阿里云服务器下部署多个tomcat服务
- 【Python】IDE环境Pycharm运行虚拟环境Django