首页 > 其他分享 >1.6.07 有趣的跳跃

1.6.07 有趣的跳跃

时间:2023-07-07 20:22:05浏览次数:46  
标签:输出 1.6 07 int 存在 序列 跳跃 有趣

1.题目

描述

一个长度为n(n>0)的序列中存在“有趣的跳跃”当前仅当相邻元素的差的绝对值经过排序后正好是从1到(n-1)。例如,1 4 2 3存在“有趣的跳跃”,因为差的绝对值分别为3,2,1。当然,任何只包含单个元素的序列一定存在“有趣的跳跃”。你需要写一个程序判定给定序列是否存在“有趣的跳跃”。

输入

一行,第一个数是n(0 < n < 3000),为序列长度,接下来有n个整数,依次为序列中各元素,各元素的绝对值均不超过1,000,000,000。

输出

一行,若该序列存在“有趣的跳跃”,输出"Jolly",否则输出"Not jolly"。

样例输入

4 1 4 2 3
样例输出
Jolly

2.题目意思总结
从题目得知,要判断一个长度为n的序列中是否存在“有趣的跳跃”,需要对相邻两个元素的差进行冒泡排序,判断它们是否是从1到(n-1)。如果是,就存在“有趣的跳跃”。反之则不存在。
但如果这个数列只有一个元素,那么它也是存在“有趣的跳跃”的。

 

3.解题思路

1).输入数列。

2).相邻两数作差。

3).将差进行冒泡排序。

4).判断排序后的数列是否是从1到(n-1)。如果是,输出"Jolly",否则输出"Not jolly"。

 

4.代码实现

#include<bits/stdc++.h>
using namespace std;
int main(){
  int a[4000],b[4000],n,j,t=0;
  cin>> n;
  cin>> b[1];
  for(int i=2;i<n+1;i++){//输入数列并作差
    cin>> b[i];
    a[i-1]=b[i-1]-b[i];
    if(a[i-1]<0){
      a[i-1]=a[i-1]/-1;
    }
  }
  for(int k=1;k<=n-1;k++){//冒泡排序
    for(int i=1;i<=n-k-1;i++){
      if(a[i]>a[i+1]){
        j=a[i+1];
        a[i+1]=a[i];
        a[i]=j;
      }
    }
  }
  for(int i=1;i<n;i++){//判断是否存在“有趣的跳跃”
    if(a[i]==i){
      t++;
  }
}
  if(t==n-1){
    cout<<"Jolly";
  }
  else{
    cout<<"Not jolly";
  }
  return 0;
}

 

5.重点总结

1).理解“有趣的跳跃”的含义。

2).正确编写冒泡排序程序。

 

标签:输出,1.6,07,int,存在,序列,跳跃,有趣
From: https://www.cnblogs.com/365760dqz/p/17535971.html

相关文章

  • 2023-07-07 《数值优化方法》-庞丽萍,肖现涛-无约束最优化(三).md
    2023-07-07《数值优化方法》-庞丽萍,肖现涛-无约束最优化(三)数值优化方法Matlab一维线搜索牛顿法抛物线法非精确线搜索1.牛顿法书接上回,对于一维最优化问题,牛顿法是在迭代点处进行二次泰勒展开来近似原函数,然后求泰勒展开式的极小点,具体如下设为当前迭代点,在处的二阶泰勒......
  • Springcloud2021+Nacos2.2+Dubbo3+Seata1.6实现分布式事务
    示例代码地址:https://gitee.com/gtnotgod/Springcloud-alibaba.git更详细参考Gitee完整的项目:https://gitee.com/gtnotgod/Springcloud-alibaba.git官网下载Nacoshttps://nacos.io/zh-cn/index.html压缩包解压:配置Nacos:**/nacos/conf/application.properties#********......
  • 「NOIP 模拟赛 20230707」T2 - 涂照片 题解
    题目大意原题有一个\(n+1\timesm+1\)的网格。对于每一行\(i\),都要将左侧的一些格子\((i,1),(i,2),\ldots,(i,x)\)涂黑,其中\(x=k\)的概率为\(a_{i,k}\)。同理对于每一列\(j\),都要将上方的一些格子\((1,j),(2,j),\ldots,(x,j)\)涂黑,其中\(x=k\)的概率为\(b_{k,......
  • 230707 // 换根复习续
    A.叶子的染色http://222.180.160.110:1024/contest/3824/problem/1不难发现题目非常难以看懂。其实题目的意思是,\(1\simn\)一定是叶子节点(就不能明说吗)。那么问题来了,这是一棵无根树,那么我们所选取的根会对答案造成影响吗?由于\(c_u\)给定的是根节点到\(u\)路径上最后......
  • Day04(2023.07.07)
    行程9:00到达上海城建城市运营有限公司(黄浦区打浦路600号)10:00整理编写文档11:30--13:00吃饭休息13:00学习等保测评基础知识,见《等保测评基础知识》16:30下班......
  • 《Kali渗透基础》07. 弱点扫描(一)
    目录1:漏洞发现1.1:Exploit-DB1.2:searchsploit1.3:nmap2:漏洞管理3:弱点扫描类型4:漏洞基本概念4.1:CVSS4.2:CVE4.3:OVAL4.4:CCE4.5:CPE4.6:CWE4.7:SCAP4.8:NVD5:漏洞管理6:扫描结果分析本系列侧重方法论,各工具只是实现目标的载体。命令与工具只做简单介绍,其使用另见《安全工具录》。本文以......
  • 20230706-NOIP模拟赛
    20230706T1.骰子游戏(dice)题目大意给你两个正整数\(n\)和\(d\),你需要构造\(n\)组数据,每组6个整数满足整数都在\([0,10^6]\)范围内,每组数据中两两不同,在每组数据中分别随机选一个数所得到的异或和为\(d\)的倍数如果能构造出这样的\(n\)组数据,请先输出‘Yes’,随后输......
  • C/C++数据结构与算法课程设计[2023-07-06]
    C/C++数据结构与算法课程设计[2023-07-06]数据结构与算法课程设计一、课程设计的目的、要求和任务 本课程设计是为了配合《数据结构与算法》课程的开设,通过设计完整的程序,使学生掌握数据结构的应用、算法的编写等基本方法。1.课程的目的(1)使学生进一步理解和掌握课堂上所学......
  • C++学生健康信息收集系统[2023-07-06]
    C++学生健康信息收集系统[2023-07-06]学生健康信息收集系统简介一、 问题描述为了应对新型冠状病毒疫情,学校需要开发一个能够每天收集全校学生健康信息的系统,便于学校管理。不同学院以及学校的管理员,需要能方便地查看和导出健康状况异常的学生列表,并能对各类信息进行查看和统计......
  • C/C++学生通讯录管理系统[2023-07-06]
    C/C++学生通讯录管理系统[2023-07-06]一、设计要求1、题目利用C++语言实现一个学生通讯录管理系统,系统中需要实现的功能如下:(1)添加学生信息:向通讯录中添加新人,信息包括(学生姓名、性别、年龄、联系电话、家庭住址等),最多记录100人。(2)显示学生信息:显示通讯录中所有学生信息。(3)删......