C++刷题笔记 2023.2.15

一、刷题内容

蓝桥杯真题:《蛇形填数》

《蛇形填数》题目

二、知识点

新知:

  1. 全局数组,未初始化时,默认值都是 0;

  1. 局部数组,未初始化时,默认值为随机的不确定的值;

  1. 局部数组,初始化一部分时,未初始化的部分默认值为 0。

总结:

在这道题中的第一个while的判断条件纠结了很久,不知道数组未赋值的时候是0还是1。后来搜了一下,发现这个知识点还是很关键,以后尽量使用全局数组。

三、解题思路

根据题目找规律后发现,这个题需要四个方位,向右、向左下、向下、向右上。

再定义一个二维数组,用行(row)列(col)两个参数来控制移动,移动就相当于给二维数组按规律赋值。

第一个while的结束条件就是当a[19][19]为真就结束。

四、解题代码

#include <iostream>
using namespace std;
int main()
{
  int a[100][100],row=0,col=0,num=1;
  a[0][0]=1;
  while(!a[19][19])
  {
    //向右
    a[row][++col] = ++num;
    //向左下
    while(col)
    {
      a[++row][--col]==++num;
    }
    //向下
    a[++row][col] = ++num;
    //向右上
    while(row)
    {
      a[--row][++col] = ++num;
    }
  }
  cout<<a[19][19];
  return 0;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值