【c/c++算法】曼哈顿算法简单运用

news2024/9/25 5:24:25

✨曼哈顿算法

  • 🦖1.曼哈顿距离算法:
  • 🐢2.例题:打印菱形曼哈顿算法讲解:
  • 🦕3.曼哈顿算法例题解释:

🦖1.曼哈顿距离算法:

  • 我们很早以前就学过了两点间距离公式,欧式距离公式

在这里插入图片描述

  • 今天我们来学习另外一种距离公式,曼哈顿距离中点的距离公式:

这里是引用

  • 接下来我们例题的形式讲解!

🐢2.例题:打印菱形曼哈顿算法讲解:

打印菱形图案

本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。


标题输入格式

输入在一行中给出一个正的奇数n。

输出格式

输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。

输入样例

1|7

输出样例

     * 
    * * * 
  * * * * * 
* * * * * * * 
  * * * * * 
    * * * 
      * 

🦕3.曼哈顿算法例题解释:

这里是引用

  • 图画的有些拙劣,大家见谅哈!🦖
  • 以n=5为例:
  • 4 的由来,是该位置的横纵坐标分别与中心的横纵坐标的差的绝对值,也就是曼哈顿距离中点的距离;
  • 规律发现,我们发现我们需要打印“星号”的地方曼哈顿距中都是小于等于2的,其余地方都是“空格”;
  • 类推求解,看中间一行,除去中心,两边都要打印“星号”,并且是曼哈顿距中最大值,也就是(n-1)/ 2,当然在代码中int类型n/2直接就可以有前者效果;
  • 曼哈顿法代码:c++
#include <iostream>

using namespace std;

int main()
{
    int n;
    cin >> n;
    
    int xc = n/2, yc = n/2;
    
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            if((abs(i-xc)+abs(j-yc))<=n/2)
                cout << '*'; // 曼哈顿距离
            else 
                cout << ' ';
        }
        cout << endl;
    }
    return 0;
}
  • 曼哈顿法代码:c
#include <stdio.h>
#include<math.h>

int main()
{
   int n;
   scanf("%d", &n);

   int xc = n / 2, yc = n / 2;

   for (int i = 0; i < n; i++)
   {
       for (int j = 0; j < n; j++)
       {
           if ((abs(i - xc) + abs(j - yc)) <= n / 2)
               printf("*"); // 曼哈顿距离
           else
               printf(" ");
       }
       printf("\n");
   }
   return 0;
}

其中abs()函数是取绝对值的意思哈,包含在头文件<math.h>中

结语:

霞满日月,前路明朗,一起加油!!!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56717.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue纯手写思维导图,拒绝插件(代码cv即用)

vue纯手写思维导图&#xff0c;拒绝插件(代码cv即用) 已完成功能点&#xff1a;折叠、放大、缩小、移动 后续增加功能点&#xff1a;添加、删除 先看结果&#xff1a; 有这么个需求&#xff0c;按照层级关系&#xff0c;把表格放在思维导图上&#xff0c;我第一时间想到用插件…

【Matplotlib绘制图像大全】(十六):Matplotlib绘制虚线折线图

前言 大家好,我是阿光。 本专栏整理了《Matplotlib绘制图像大全》,内包含了各种常见的绘图方法,以及Matplotlib各种内置函数的使用方法,帮助我们快速便捷的绘制出数据图像。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmMatp…

三翼鸟,用两年开启下一个十年

这段时间以来&#xff0c;我和亲朋好友的居家生活时间都增加了&#xff0c;以前一直存在但被忽视的不便体验&#xff0c;也开始凸显出来。比如在家就餐频次高了&#xff0c;厨房小白会为不会做饭而苦恼&#xff1b;智能设备的很多功能&#xff0c;依然需要手动操作……这些琐碎…

【大数据入门核心技术-Zookeeper】(二)ZAB协议介绍

目录 一、什么是Zab协议 二、Zab协议的4个阶段 1、选举阶段(Leader Election) 2、发现阶段(Discovery) 3、同步阶段(Synchronization) 4、广播阶段(Broadcase) 一、什么是Zab协议 ZAB协议&#xff0c;全称 Zookeeper Atomic Broadcast&#xff08;Zookeeper 原子广播协议…

Keras文本和序列(三)

本篇涉及的内容 如何对文本分词 什么是词嵌入&#xff0c;如何使用词嵌入 什么是循环网络&#xff0c;如何使用循环网络 如何堆叠 RNN 层和使用双向 RNN&#xff0c;以构建更加强大的序列处理模型 如何使用一维卷积神经网络来处理序列 如何结合一维卷积神经网络和 RNN 来处…

焱融全闪系列科普| 为什么 SSD 需要 NVMe?

NVMe 的由来 目前机械硬盘大多数使用 SATA (Serial ATA Advanced Host Controller Interface) 接口&#xff0c;接口协议为 AHCI&#xff0c;是 Intel 联合多家公司研发的系统接口标准。AHCI 最大队列深度为 32&#xff0c;即主机最多可以发 32 条命令给 HDD 或 SSD 执行&…

【观察】软通动力:以数智化技术创新,赋能每一个降碳场景

毫无疑问&#xff0c;“碳达峰、碳中和”已成为当今世界最为紧迫的使命&#xff0c;目前全球已有110多个国家相继承诺“碳中和”目标。同样&#xff0c;2020年9月&#xff0c;中国也提出了到2030年实现“碳达峰”&#xff0c;并努力争取2060年前实现“碳中和”的“双碳”目标&a…

六、组件的生命周期与组件间之间的数据共享

一、组件的生命周期 1.1、生命周期 & 生命周期函数 生命周期&#xff08;Life Cycle&#xff09;是指一个组件从创建→远行→销毁的整个阶段&#xff0c;强调的是一个时间段。 生命周期函数&#xff1a;是由vue框架提供的内置函数&#xff0c;会伴随着组件的生命周期&…

阿里云安装mysql、nginx、redis

目录 安装mysql 安装nginx ​编辑安装redis 先看一下系统基本信息 安装mysql rpm -qa | grep mariadb 卸载mariadb rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 wget -i http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install my…

【使用 BERT 的问答系统】第 7 章 :BERT 模型的未来

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

(八) 共享模型之管程【活跃性】

一、多把锁&#xff08;P114&#xff09; 一间大屋子有两个功能&#xff1a;睡觉、学习&#xff0c;互不相干。 现在小南要学习&#xff0c;小女要睡觉&#xff0c;但如果只用一间屋子&#xff08;一个对象锁&#xff09;的话&#xff0c;那么并发度很低 解决方法是准备多个房间…

项目复习:基于TCP的文件服务器

ser.c(服务器): #include "./fun.h"int main(int argc,const char * argv[]) {//1.判断入参if(argc!3){fprintf(stderr,"入参为空&#xff0c;请检查\n");return -1;}//端口号转整型int portatoi(argv[2]);//变量声明struct sockaddr_in sin;int sinLensi…

axios.defaults.baseURL的三种配置方法

axios.defaults.baseURL的三种配置方法目录概述需求&#xff1a;设计思路实现思路分析1.少2.2.动态获取请求地址3.3.采用配置文件参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,m…

SEAL 0.3 正式发布:国内首个全链路软件供应链安全管理平台

12月1日&#xff0c;软件供应链安全管理平台 SEAL 0.3 正式发布&#xff08;以下简称“SEAL”&#xff09;&#xff0c;这是国内首个以全链路视角保护软件供应链的安全管理平台。两个月前 SEAL 0.2 发布&#xff0c;该版本创新性地提供了依赖项的全局汇总与关联&#xff0c;用户…

DSP篇--C6678功能调试系列之SPI调试

目录 1、初始化 2、数据传输 1、初始化 Perform the following procedure for initializing the SPI: 1. Reset the SPI by clearing the RESET bit in the SPI global control register 0 (SPIGCR0) to 0. 2. Take the SPI out of reset by setting SPIGCR0.RESET to 1. 3. …

【使用 BERT 的问答系统】第 6 章 :BERT 模型应用:其他任务

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

【大数据入门核心技术-Zookeeper】(三)Zookeeper的选举机制和流程

目录 一、Zookeeper的选举机制 1、每一个 Server 都会发出一个投票 2、接收来自各个 Server 的投票 3、处理投票 4、统计投票 5、改变服务器状态 二、Zookeeper的选举流程 一、Zookeeper的选举机制 Zookeeper 在配置文件中并没有指定 Master 和 Slave。但是&#xff0c;…

软件测试培训之十个无脚本测试方案

1.自然语言处理(NLP) 目前&#xff0c;一些最新的无脚本自动化测试工具能够通过采用NLP语法&#xff0c;来创建各种测试用例。就像编写简单的英语语句一样&#xff0c;用户可以轻松地实现测试用例的自动化。此类工具一般会带有AI驱动的内核&#xff0c;因此大幅节省了用户对其维…

【遥感图像融合:梯度指导:纹理细节】

GTP-PNet: A residual learning network based on gradient transformation prior for pansharpening &#xff08;一种基于梯度变换的剩余学习网络&#xff09; 提出了一种基于梯度变换先验的残差学习网络GTP-PNet&#xff0c;用于生成光谱分布准确、空间结构合理的高质量HRM…

车间生产设备管理有哪些问题?低代码来助力

随着科学技术对生产技术与生产工艺流程的不断改革创新&#xff0c;同时受市场变化的影响&#xff0c;企业生产管理模式也发生了巨大的改变&#xff0c;对车间生产设备管理的要求更高&#xff0c;并在一定层面推动了车间生产设备管理模式的创新和转变发展。但由于不同的企业面对…