Java怎么解决机器人走格子问题
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章主要介绍"Java怎么解决机器人走格子问题"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java怎么解决机器人走格子问题"文章能帮助大家解决问题。题目
千家信息网最后更新 2024年11月27日Java怎么解决机器人走格子问题
这篇文章主要介绍"Java怎么解决机器人走格子问题"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java怎么解决机器人走格子问题"文章能帮助大家解决问题。
题目:地图上有一个m行n列的方格,一个机器人从坐标(0,0)的格子开始移动,它每一次可以移动的方向是上、下、左、右,且每次只能移动一格,但是不能进入行坐标和列坐标数位之和大于K的格子。例子,当K为16时,机器人能够进入方格(24,19),因为2+4+1+9=16,但是不能进入方格(34,28),因为3+4+2+8=17>16,
问:该机器人能够达到多少个格子。
分析:
这个题目比较简单,可以把问题分解为4个部分:
1)如何计算数字的位数之和
2)机器人是否能够进入某个格子
3) 如果能进入格子,四邻域内的格子是否能够进入,
4)统计一共能够达到多个格子
1)代码
//计算数字位数之和
int getDigitSum(int number)
{
int sum=0;//临时变量,保存一个数字数位和
while(number){
sum+=number;
number/=10;
}
return sum;
}
2)代码
//机器人能否进入某个格子,即从三个方面考虑:
//①是否越界,②数位之和是否满足条件,③邻域格子是否已经访问过
bool check(int threshold,int rows,int cols,int row,int col,bool* visit){
if(row>=0&&col>=0&&row
&&!visit[row*cols+col])
return true;
return false;
}
3)代码
int movingCountCore(int threshold,int rows,int cols, int row,int col, bool *visited)
{
int count=0;
if(check(threshold,rows,cols,row,col,bool* visited))
{
visited[row*cols+col]=true;
count+=1+movingCountCore(threshold,rows,cols,row-1,col,visited)
+movingCountCore(threshold,rows,cols,row+1,col,visited)
+movingCountCore(threshold,rows,cols,row,col-1,visited)
+movingCountCore(threshold,rows,cols,row,col+1,visited);
}
return count;
}
4)代码
int movingCount(int threshold,int rows,int cols){ //要考虑负值的情况 if(threshold<0||rows<=0||cols<=0) {return 0;} bool* visited=new bool[rows*cols]; for(int i=0;i<=rows*cols;++i){ visited=false; } int count=movingCountCore(threshold,rows,cols,0,0,visited); delete[] visited; return count;}
关于"Java怎么解决机器人走格子问题"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
格子
机器
机器人
问题
之和
代码
坐标
数位
数字
方格
知识
移动
位数
行业
题目
不同
实用
三个
个部
例子
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
传奇单机物品数据库加载不了
鞍山政务软件开发价格
tcp服务器断开再连接
在线选课系统数据库描述
边锋领沃网络技术
石家庄工业控制上位机软件开发
原神手游哪个服务器好玩
如何搜索代理服务器
停服务器通知
重庆万盛区软件开发企业
sql清空 数据库表
上海速排互联网科技中心
太的数据库
pcl2多人游戏服务器地址
2017年网络技术会考题
网络安全分为哪几个
vba访问sql数据库
中国银行数据库激活状态
云服务器挂流量精灵
转行java软件开发培训
数据库服务无法启动服务器
学院网络安全周
西安空城网络技术股份有限公司
开讲啦中5G网络技术的理解
陕西果蔬配送软件开发
数据库保存数组
我的世界枪械服务器怎么下载
北京it软件开发来电咨询
重庆搞软件开发的又哪些
天津曙光服务器虚拟化技术云空间
- 上一篇
什么是测试网络连通性的命令
今天就跟大家聊聊有关什么是测试网络连通性的命令,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。测试网络连通性的命令是:ping命令。ping是用
- 下一篇
hadoop启动start-all.sh出错(master: ssh: connect to host master port 22: Connection refused)
当我们打开系统输入hadoop启动命令start-all.sh时出现以下错误:[root@master ~]# start-all.shstarting namenode, logging to /u