对1-9三个数组成1:2:3的自己理解

C语言,将1~9这9个数字分成三组,每组中的三个数排成一个三位的完全平方数,要求每个数字必须且只能用一次 题目要求:将1~9这9个数字分成三组,每组中的三个数排成一个三位的完全平方数,要求每个数字必须且只能用一次 。 思路如下: 1、先造一个数组num[]用来标记1到9这几个数字是否已经被使用过。比如:num[1] = 0,表示"1" 还没被使用过,而 num[1] = 1,则表示"1"前面已经用过了,要重新取数。 每次取数之前都判断一下要取的数对应的num[]标志,这样就解决了 “每个数字必须且只能... 阅读详情

题目是很老套的题了,但是在做的时候我发现了几个问题,这里总结一下:

问题如下:9个数1-9组成三个数,如:327 654 981,每个数字只能用一次,每三个数字组成一个新的数字,第二个数是第一个数的两倍,第三个数是第一个数的三倍,用程序实现。 

思路: 
1.列出所有可能的第一个数 
2.根据第一个数得到第二个以及第三个数的值 

3.根据3个数值的9个数字,判断是否有重复的数字,没有重复的数字就是我们要的结果

   实现代码如下:

       

List<Integer> list = new ArrayList<Integer>();
		 
		 //得到所有可能的第一个数(由于第三个数是第一个数的倍数,因此可以判断第一个数的个位不会大于3)
		 for(int i=1;i<=3;i++){
			 for(int j=1;j<=9;j++){
				 for(int k=1;k<=9;k++){
					 String num = String.valueOf(i)+String.valueOf(j)+String.valueOf(k);
					 list.add(Integer.valueOf(num));
					 
				 }
			 }
		 }
		 
		 //用第一个数得到第二个数和第三个数,并合并成一个字符串,判断是否有重复的数值
		 for(int x=0;x<list.size();x++){
			 int num = list.get(x);
			 int num2 = num*2;
			 int num3 = num*3;
			 String newNum = String.valueOf(num)+String.valueOf(num2)+String.valueOf(num3)+" ";
			
			 //排除乘法以后产生‘0’数值的情况
			 if(newNum.indexOf("0")>-1){
				 continue;
			 }
			 
			 //判断1-9的数字字符在三个数中是否重复
			 for(int y=1;y<10;y++){
				
				 String[] str = newNum.split(String.valueOf(y));
				 
				 if(str.length>2){
					 break;
				 }
				 
				 if(y == 9){
					 System.out.println("= "+num+" "+num2+" "+num3);
				 }
			 }
		 }

最后有个问题我花了半个小时进行验证,对newNum的分割的时候,对spit()的用法需要总结:

      文档对这用法是这样说的:

This method works as if by invoking the two-argument split method with the given expression and a limit argument of zero. Trailing empty strings are therefore not included in the resulting array.

The string "boo:and:foo", for example, yields the following results with these expressions:

RegexResult
:{ "boo", "and", "foo" }
o{ "b", "", ":and:f" }
即 :如果以“o”来分割上述字符串,将得到长度为3的数组,而不是4,因为spit默认最后分割的空格全部省略,这样是为了实际有种情况,比如以“ ”空格进行分割,如果不把默认的最后的空格省略,那么这样分割出来的数组有可能会非常大,比如某文档后面有10个空格,或者更多,数组太大会影响性能的。

这里啰嗦这么多就是为了说明以下问题:

因为这题有个特殊的数字148296444,就是这个数字也是1:2:3,如果以4分割的话将还是数组为2的数组([1,8296]),题目要求数字不能重复,这个数字明显重复了,咱们解题的思路就是把所有数字在1-9这9个数依次分割一边,当分割的长度大于2,也就是这个数重复了,所以在这个数的最后加个空格,也就是说这个数位“148296444 ”看到了吧,后面多个空格,这样分割的后的数组长度就为5([1,8296, , , ]),这也是在

 String newNum = String.valueOf(num)+String.valueOf(num2)+String.valueOf(num3)+" ";
这里增加个空格的原因。

    通过这个例子我对spit的理解深了。





9.2.2将1到9数字分成三组,每组的三个数排成一个位数的完全平方数 每个数字有且只能用一次 1.必须先理解思路再去找BUG不然就是浪费时间。。。。。。。。。 /** * 先解决思路的问题: * 1.三位数100-999对应的某个值完全平方数 * 2.值的范围为10 <m < 32 * 3.怎么获取九位数的分成三组的各个数(采用求余数的方式) * * * 先将每个数对应的平方值存一个数组中 * 分别从数组中取出三个数,看三个数是不是9个不同的元素组成 */ #in... 阅读详情

相关推荐

【C++-NOIP篇-10】[NOIP1998 普及组] 三连击

本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。弱弱的问一下,我现在在学Unity,你们说要不要发个游戏教程。我自己也不知道自己到底在学啥,感觉看到啥就想学啥。话不多说上代码,自我认为比较好理解,大佬勿喷。题目非常明了,但是对于新人感觉十分不友好。的比例,试求出所有满足条件的。NOIP1998 普及组 第一题。

你创题, 我AC, 出题解 626

用1-9九个数组成三个三位数abc,def,ghi每个数字使用一次,要求这三个三位数形成1:2:3的关系

思路来源: https://blog.youkuaiyun.com/woaifen3344/article/details/8058215 简述一下就是利用一个数组表示1-9,当数组元素被赋值为1代表这个数字被使用过,当数组都被使用过时即1-9均被使用,此时i的值满足条件。 #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int number[9]; int i;

qq_38736617的博客 2124

用JAVA实现蓝桥杯算法训练之最大最小公倍数:已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。 -贪心算法

问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。 输入格式 输入一个正整数N。 输出格式 输出一个整数,表示你找到的最小公倍数。 样例输入 9 样例输出 504 思路: 这是一个简单的贪心算法问题,解决此题,只需要明白一个数学关系, 即当三个数互为质数时, 他们之积为最小公倍数 import java.util.Scanner; public class ya...

David_Aulier的博客 1470

1-9九个数字不重复组成一个三位数加法算式,求出所有组合

问题描述: 将1-9的9个数字不重复的填入[ ][ ][ ] + [ ][ ][ ] = [ ][ ][ ],使得等式成立 如 173 + 286 = 459 且 将 286 + 173 = 459 视为同一种,问满足这样条件的情况有几种 问题解法: 将9个不重复数字填入到9个位置并且满足等式成立条件,可以看做求9个数组的全排列,只要全排列满足 前3个数字 + 中间3个数字 = 最后3个数字即可...

Jared的博客 4万+

Apache Tez 0.9.2 for Hadoop 3.2.1 版本包

在大数据处理领域中,Tez框架凭借其灵活性和高性能,成为许多数据工程师和开发者的首选工具。本章节将为读者深入介绍Tez开源框架的背景、设计理念、特性和版本迭代。Tez是一种基于Hadoop YARN的开源框架,设计初衷是为了提供一个更加灵活和高效的执行平台,来加速MapReduce程序的执行。其设计理念是通过优化执行计划和任务调度来提高处理速度,同时增加对复杂作业图的支持。Hadoop是一个开源框架,由Apache基金会支持。它允许分布式存储和处理大数据。

weixin_36369848的博客 725

ubuntu通过qemu安装银河麒麟V10_Arm_v8 (kylin_v10_飞腾/鲲鹏版)

一、windows下安装vmware虚拟机 二、ubuntu下载地址 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/ubuntu-20.04.3-live-server-amd64.iso 三、vmware中新建虚拟机,并使用ubuntu-20.04.3-live-server-amd64.iso作为启用盘 。。。在虚拟机中安装ubuntu(略) 四、配置ssh(如果ssh登录不上时配置) 修改openssh的配置 vi /etc/s

u010533742的博客 8705

1~9分成1:2:3的三个3位数

将1到9这九个数字分成三个3位数,要求第一个3位数,正好是第二个3位数的二倍,是第三个3位数的三倍。 问题中的三个数之间是有数学关系的,实际上只要确定第一个三位数就可解决问题。试探第一个三位数后,计算出另外两个数,将其分别分解成三位数字,进行判断后确定所 试探的数是否就是答案。 需要提醒的是:试探的初值可以是123,最大值是333。因为不可能超出该范围。 #include typede

nigulasi_dawei的博客 9478

海康威视Web3.0插件实战:快速部署摄像头实时预览方案

本文详细介绍了海康威视Web3.0插件的实战应用,包括快速部署摄像头实时预览方案的完整流程。从插件下载安装到摄像头连接配置,再到浏览器兼容性解决方案,帮助开发者和IT人员高效实现网页端监控功能。特别针对预览功能调优和多摄像头管理等高级应用提供了实用技巧。

weixin_29266679的博客 348

1-9这9个数字划分成三个3位数,第一个分别是第二、三个的2倍,3倍,用程序划分

1-9这9个数字划分成三个3位数,第一个分别是第二、三个的2倍,3倍,用程序划分! 代码如下: #include #include /* * 用visit数组标记1-9这9个数字是否全部用完,且不重复 * 只有当他们全部用完且不重复使用时,和才为9,这样就 *满足条件了 */ int main() {     int i, j, k, x;     int vi

标哥 1万+

加速度计解算姿态角

姿态角(欧拉角) 欧拉角主要用于描述刚体在固定三维参考坐标系下由于绕三轴任意旋转而形成的姿态角,具体描述参看欧拉角说明 图中xyz为固定参考系坐标,XYZ为刚体自有坐标系 (假定右手定则,即大拇指指向某一轴正方向,握拳是其余手指的转动方向为姿态角变化的正方向),则定义 绕固定坐标系的z轴旋转:航向角yaw, 转动 y 角度 绕固定坐标系的y轴旋转:俯仰角pitch,转动p 角度 绕固定坐标系的x轴旋转:横滚角roll, 转动r 角度 可以看出欧拉角或者姿态角是相对各个轴的角度偏移,再假定旋转的顺规为Z

卢平光的博客 1万+

洛谷P1008 三连击题解合集

题目传送门 题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。 题目描述 将1,2,⋯,9共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。 代码 暴力九重循环: #include &lt;stdio.h&gt; #include &lt;cstdlib&gt; int main() ...

C++ 1530

STM32 伺服电机 指令脉冲+方向位置控制模式 主从定时器 实现PWM脉冲数精确控制

实验室有个项目涉及到多个步进电机以及伺服电机的控制,需要电机得到一个触发信号后精确移动一段距离。 下面以单个伺服电机控制为例,利用伺服电机的指令脉冲加方向位置控制模式实现jing'que ...

phcdd的博客 2万+

三连击问题

问题:将1,2,⋯,9共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。 关于三连击,这是一道对新手而言不友好的题目,但是因为测试范围不是很大,我们可以直接考虑暴力解法,在1、2、3、4、5、6、7、8、9中三个一组,先看是否为1:2:3的关系,若成立,我们在利用bool数组去判断是否全部的数都出现了(也就是没有重复利用某个数),二话不说...

wanna__ac的博客 1503

VisionMaster4.2.0与C#控件开发实战:从入门到精通的完整指南

本文详细介绍了VisionMaster4.2.0与C#控件开发的实战指南,从基础环境搭建到核心控件使用,再到高级功能实现。通过VmFrontendControl、VmGlobalToolControl等核心控件的深入解析,帮助开发者快速掌握机器视觉应用开发技巧,提升开发效率。特别适合需要集成VisionMaster4.2.0 SDK进行视觉系统开发的C#程序员。

weixin_42665725的博客 383

手把手教你玩转服务器芯片架构​专栏--​​3.5 实战案例:用SystemC搭建一个多核服务器芯片的NoC模型(含流量分配与延迟仿真)​

通过SystemC搭建多核NoC模型,可深入验证流量分配策略与延迟特性。实际工程中需结合FPGA原型验证(如Xilinx Alveo)进行时序收敛分析,并通过参数化设计适配不同服务器芯片需求。

MHD0815的博客 3047

【C语言之三个数比较大小】switch用9行代码就能实现三个数大小排序?你绝对没见过的船新版本写法......

C语言switch用9行代码实现三个数排序。本文采用switch+位运算实现三数比较大小,值得一看!

菜小涛的博客 9264

华为OD机试 - 小火车最多人时所在园区站点(Java 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 996

C++中1e9(初始化、无穷大)解析

(对新手友好,简单易于理解) **前言:**C++初学者遇到1e9时,可能会很好奇,这个表示什么意思?有什么用?遇到的一些问题为什么要这么处理?以下是个人的一些理解。 1.什么是1e9 通常来说这是计算机中一种科学计数法的表示形式: 1e9 = 110^9 = 1000000000; 例如:9e8 = 910^8 = 900000000; e表示10,e后面的数字表示次方,e的多少次方。 2.C++中的1e9 int num1 = 1e9; int num1 = 1e10; 输出的结果为: num1 = 1

cpb____的博客 5万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java求三个数中的最大数_java中找出三个数最大的!

java中找出三个数最大的!关注:223答案:1mip版解决时间 2021-02-01 22:41提问者孤独食人心2021-02-01 10:28java中找出三个数最大的!最佳答案二级知识专家清酒孤欢2021-02-01 12:02//判断三个数中的大数输出//2010-9-16import java.util.Scanner;public class ThreeBig {public ...

weixin_39892800的博客 2620

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

计算机组成原理:实验三数据通路组成实验

在本次实验中,我们将双端口通用寄存器堆(RF)和双端口存储器模块联机,深入了解了计算机的数据通路操作,并熟悉了数字逻辑电路中故障排除的一般原则和方法。本实验的主要目的是将理论知识应用于实际操作,锻炼分析和解决问题的能力,尤其是在出现故障的情况下,能够独立分析故障现象并排除故障。实验电路如图3.1所示,通过将双端口存储器模块和双端口通用寄存器堆模块连接,形成了一个完整的数据通路系统。双端口存储器的指令端口不参与本次实验。

OraOla的博客 4846

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Qwen3.5-9B效果对比:vs Qwen3.5-2B在长文档理解、代码正确率、图片描述精度

本文介绍了如何在星图GPU平台上自动化部署Qwen3.5-9B 90亿参数开源大语言模型镜像,实现高效的多模态智能处理。该模型在长文档理解、代码生成和图片描述等场景中表现优异,特别适用于复杂文档分析、高质量代码开发及精确图片内容理解等专业应用。

weixin_35972981的博客 778

C语言实现1:2:3的三个三位数的排列

1.题目描述 用1,2,3,…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。 2.解题思路 首先看到1~9的不重复数字,连续的一串数,立马想到数组下标也是连续的。 每个数字恰好用一次,还要求abc:def:ghi=1:2:3,那么我们能先确定abc的范围:123~329。123,最小的好理解,那297呢?因为ghi最大是987,ghi = 3 abc, 那么abc最大值就是329。

qq_59361327的博客 2350

DeepMind CEO:AI可以发现室温超导;Llama 3.1算对9.9>9.11 | AI头条

DeepMind CEO:AI 将增强科学,如设计新药、发现室温超导、破解数学猜想传谷歌、Meta 竞购雷朋眼镜母公司340 万浏览!Claude 编程引发开发者热潮可以解决“9.11 > 9.9”问题?Llama-3.1 模型即将发布尼克·博斯特罗姆:人工智能会超越人类智能ElevenLabs 发布 T...

AI科技大本营 4973

vs2022+cmake+vtk9.3.1+qt6.9.1

本文详细记录了在Windows系统下配置VTK与Qt开发环境的完整流程。作者分享了从VS、Qt安装到VTK源码编译的详细步骤,重点解决了vcpkg安装VTK无法与Qt联动的问题。通过CMake配置VTK 9.3.1版本并勾选QT相关选项,演示了包含目录设置、库文件生成及依赖项配置的全过程。文中提供了完整的项目配置参数,包括Debug/Release模式切换、工作目录设置等关键细节,并附上了一个可运行的3D球体示例代码。最后汇总了所有必要的包含路径和依赖库列表,为开发者配置VTK+Qt环境提供了完整的参考方案

qq_62693717的博客 1643

华为大数据开发机试题:使用java语言,从10个数中随机抽取3个数,保证3个数带入公式x²+xy-y²+z中的值最小

前言 这道题是华为大数据开发工程师的机试面试题,规定解答时长为一个半小时,首先需要写出本题的代码,不能翻阅资料和API,在华为机试的系统中会有摄像头视频监控,并且开发工具中没有任何的代码提示,包括java类的包也是需要自己手动导入。 题意 本题的意思是:使用java语言,任意从键盘输入10个随机数字,数字范围为[-512,512],然后从这10个数中随机抽取三个数,将这三个数x,y,z带入公...

程序猿丶HLK 4481
上一篇: 指定的服务并未以已安装的服务存在 unable to open the service 'tomcat7'
下一篇: struts1的总结
beyond667
博客等级 码龄15年 41粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值