L1-7 整数的持续性

devtools/2025/3/16 12:53:07/

题目

在这里插入图片描述

代码

#include <iostream>  // 包含输入输出流的头文件  
#include <vector>    // 包含向量容器的头文件  
#include <algorithm> // 包含算法函数的头文件  using namespace std; // 使用标准命名空间  // 定义一个名为 calculatePersistence 的函数  
// 该函数接受一个整数 number 作为参数  
// 返回值为整数类型  
int calculatePersistence(int number)   
{  int persistence = 0; // 初始化连续性为 0  // 如果 number 不是个位数就一直循环  while (number >= 10)   {  int product = 1; // 初始化乘积为 1  // 计算 number 各个位数的乘积  while (number > 0)   {  product *= (number % 10); // 将当前位数的数字乘入乘积  number /= 10; // 去掉当前位数的数字  }  number = product; // 更新 number 为新的乘积  persistence++; // 每次得到新的 product, 连续性步数加 1  }  return persistence; // 返回最终的连续性  
}  int main() {  int a, b; // 定义两个整数变量 a 和 b  cin >> a >> b; // 从标准输入流中读取 a 和 b 的值  int maxPersistence = 0; // 初始化最大连续性为 0  vector<int> longestNumbers; // 创建一个存储最长连续性数字的向量  // 遍历从 a 到 b 的所有整数  for (int i = a; i <= b; ++i)  {  int persistence = calculatePersistence(i); // 计算当前数字的连续性  // 如果当前数字的连续性大于目前的最大连续性  if (persistence > maxPersistence)  {  maxPersistence = persistence; // 更新最大连续性  longestNumbers.clear(); // 清空之前存储的数字, 因为有更大的连续性  longestNumbers.push_back(i); // 将当前数字加入 longestNumbers 向量  }  // 如果当前数字的连续性等于目前的最大连续性  else if (persistence == maxPersistence)  {  longestNumbers.push_back(i); // 将当前数字加入 longestNumbers 向量  }  }  // 输出结果  cout << maxPersistence << endl; // 输出最大连续性  for (int i = 0; i < longestNumbers.size(); ++i) // 遍历 longestNumbers 向量  {  if (i > 0) cout << " "; // 如果不是第一个数字, 输出一个空格  cout << longestNumbers[i]; // 输出当前数字  }  cout << endl; // 输出换行  return 0; // 程序正常退出  
}  

总结

  • longestNumbers.clear(); // 清空之前存储的数字
  • longestNumbers.push_back(i); //在尾加

http://www.ppmy.cn/devtools/167559.html

相关文章

串排序(信息学奥赛一本通-2048)

【题目描述】 对给定的n(1≤n≤20)个国家名&#xff08;国家名字长度不超过20&#xff09;&#xff0c;按其字母的顺序输出。 【输入】 第一行为国家的个数n&#xff1b; 以下n行为国家的名字。 【输出】 n行&#xff0c;排序后的国名。 【输入样例】 3 Korea China Japan 【输…

Pycharm实用技巧

一、Pycharm 参数注释 在 PyCharm 中&#xff0c;在方法下输入三引号&#xff08;"""&#xff09;就能自动生成参数注释&#xff1a;def input_combo_detail(self, scale, ptype_data, ptype_info, sku_info, unit_info, price, qty):""":param…

【WPF】在System.Drawing.Rectangle中限制鼠标保持在Rectangle中移动?

方案一&#xff0c;在OnMouseMove方法限制 在WPF应用程序中&#xff0c;鼠标在移动过程中保持在这个矩形区域内&#xff0c;可以通过监听鼠标的移动事件并根据鼠标的当前位置调整其坐标来实现。不过需要注意的是&#xff0c;WPF原生使用的是System.Windows.Rect而不是System.D…

HTTP协议简介

一、HTTP协议介绍 基本介绍&#xff1a; HTTP&#xff1a;全称超文本传输协议&#xff0c;是用于从万维网服务器传输超文本到本地浏览器的传送协议。 HTTP是一种应用层协议&#xff0c;是基于TCP/IP通信协议来传输数据的&#xff0c;其中HTTP1.0、HTTP1.1、HTTP2.0均为TCP实…

网络层协议

目录 一、网段划分的发展过程 &#xff08;1&#xff09;固定长度的网络号 &#xff08;2&#xff09;子网掩码---网络号长度不再固定 二、公有IP和私有IP &#xff08;1&#xff09;私有IP &#xff08;2&#xff09;NAT技术 三、IP协议报头 分片操作 四、查看一下li…

【Godot】CanvasItem

&#xff08;参考自deepseek回答&#xff09; 在 Godot 引擎中&#xff0c;CanvasItem 是一个非常重要的类&#xff0c;它是所有 2D 渲染对象的基础类。CanvasItem 提供了 2D 渲染、变换、绘制和可见性控制等功能&#xff0c;是 Godot 2D 系统的核心组成部分。 1. CanvasItem 的…

重塑企业存储性能的终极引擎-NVMe集群

在实时交易系统每秒处理百万级请求的时代&#xff0c;在自动驾驶汽车每秒生成GB级数据的场景下&#xff0c;传统存储协议已难以为继。NVMe&#xff08;Non-Volatile Memory Express&#xff09;集群作为存储技术的革命性突破&#xff0c;正在重新定义企业级存储的性能上限。根据…

Android中的FragmentTransaction是什么以及如何使用它

Android中的FragmentTransaction是一个非常重要的类&#xff0c;它用于管理Fragment的添加、替换、移除等操作。通过FragmentTransaction&#xff0c;开发者可以在Activity中灵活地管理多个Fragment&#xff0c;实现页面的切换和交互&#xff0c;从而提高用户体验和界面灵活性。…