算法-靠谱的车

import java.util.*;
public class Main{public static void main(String[] args){Scanner in=new Scanner(System.in);int n=in.nextInt(),copy=n;// 取每一位上的数放入数组List<Integer> list=new ArrayList<>();while(n!=0){int res=n%10;list.add(0,res);n/=10;}// 转数组n=list.size();int[] arr=new int[n];for(int i=0;i<n;i++){arr[i]=list.get(i);}// 处理:ans多加的数int index=n-1,ans=0;while(true){int cur=arr[index];if(cur>4){// //1.前面高位中有4int i=index-1;while(i>=0&&arr[i]!=4){i--;}if(i>=0){//在i处是4,多加的数是10的x次方int base=1;for(int j=i;j<index;j++){base*=10;}ans+=base;//i处的位值减1arr[i]--;}else{// 2.前面高位中没有4,多加的数为1ans++;//上一个非0更高位减1i=index-1;while(i>=0&&arr[i]==0){i--;}if(i<0)break;arr[i]--;//从i到index的路程中的0位全部置为9:模仿借位for(int j=i+1;j<index;j++){arr[j]=9;}}}else{//向最近一个高位借位(该位必须不为0)int i=index-1;while(i>=0&&arr[i]==0){i--;}if(i<0)break;arr[i]--;// 中间的数全部置9(包括index)for(int j=i+1;j<=index;j++){arr[j]=9;}  }}System.out.println(copy-ans);}
}

简要:每个数位从9到0均统计一遍,其中个位上只需统计1次。原数肯定不包含1,在逐一借位时可能产生4,要单独处理。

如n=99

99: 多加了1, 高位降为变89,再判断

89: 多加了1, 高位降为变79

79: 多加了1, 高位降为变69

……

49: 从40-50都被跳过,多加了10.

……

09:多加了1,高位无法再降,结束。

对于n=100,个位为0,显然没有跳过4,需要将其降到个位大于4的最大数:99,即借位。

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

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

相关文章

Linux diff命令(比较两个文件或目录的内容差异)

文章目录 Linux diff 命令详解教程基本用法比较文件输出解释 递归比较&#xff08;-r&#xff09;示例代码 控制输出格式统一格式&#xff08;-u&#xff09;上下文格式&#xff08;-c&#xff09; 高级选项忽略所有空白差异&#xff08;-w&#xff09;仅报告文件是否不同 Linu…

如何通过AI技术提升内容生产的效率和质量

如何利用AI提高内容生产效率? 利用人工智能&#xff08;AI&#xff09;技术提高内容生产效率和质量&#xff0c;可以从以下几个关键方面入手&#xff1a; 1. 智能内容策划与选题 数据分析&#xff1a;AI能够分析用户行为数据、市场趋势、竞争对手策略等&#xff0c;帮助内容…

纯 CSS 实现标签自动显示超出数量

现代 CSS 强大的令人难以置信。 这次我们来用 CSS 实现这样一个功能&#xff1a;有多个宽度不同的标签水平排列&#xff0c;当外层宽度不足时&#xff0c;会提示超出的数量&#xff0c;演示效果如下 如果让我用 JavaScript来实现估计都有点折腾&#xff0c;毕竟宽度都是动态的…

有什么方便实用的黏土特效教程?6个软件教你快速进行特效制作

有什么方便实用的黏土特效教程&#xff1f;6个软件教你快速进行特效制作 作为时尚小达人&#xff0c;你自己是否想要制作出属于自己的黏土特效照片呢&#xff1f;比如下面几种。 看到这些黏土特效软件有没有心动&#xff0c;下面我也为大家详细的介绍一下可以制作出对应特效的…

Java 集合-List

集合主要分为两组(单列集合, 双列集合) Connection 接口有两个重要的子接口LIst 和 Set, 它们的实现子类都是单列集合, Map 接口的实现子类是双列集合, 存放的是 K-V Connection 接口 Collection 接口和常用方法 下面以 ArrayList 演示一下 add: 添加单个元素remove: 删除指…

Socket学习记录

本次学习Socket的编程开发&#xff0c;该技术在一些通讯软件&#xff0c;比如说微信&#xff0c;QQ等有广泛应用。 网络结构 这些都是计算机网络中的内容&#xff0c;我们在这里简单回顾一下&#xff1a; UDP(User Datagram Protocol):用户数据报协议;TCP(Transmission Contr…

python笔记(16)模块

模块是组织代码、实现复用、提升开发效率的关键元素。它们如同积木块一样&#xff0c;构成了Python程序的基石。本 一、理解Python模块&#xff1a;定义与基本特性 1. 定义 模块&#xff0c;简单来说&#xff0c;就是包含Python定义和语句的文件。它可以是一个.py文件&#…

这是一关于DSC相关的文档

这是一关于DSC相关的文档 上面这幅图清晰的展示了somewhat flat的像素图示

机器学习算法应用——关联规则分析(4-4)

关联规则分析&#xff08;4-4&#xff09; 关联规则分析&#xff08;Association Rule Mining&#xff09;是一种基于频繁项集的分析方法&#xff0c;它以最常出现在一起的元素之间的关系作为分析对象&#xff0c;主要用于发掘大数据中隐藏的关联规则&#xff0c;是数据挖掘技术…

JAVA_1

JAVA_1 一、JAVA8种数据类型二、JAVA数据类型自动和强制转换三、JAVA运算符 一、JAVA8种数据类型 1.byte 1字节 2.short 2字节 3.int 4字节 4.long 8字节 5.float 4字节 6.double 8字节 7.char 2字节 8.boolean true和false import java.util.Scanner;public class test1_dat…

Python教程:一文了解PageObject模式

PageObject 模式是一种用于测试自动化的设计模式&#xff0c;它将页面的功能和页面的实现分开&#xff0c;提高了代码的可维护性和可重用性。本文将从基础概念开始&#xff0c;逐步介绍 Python 中的 PageObject 模式&#xff0c;并提供详细的代码示例。 1. 什么是 PageObject 模…

小众行业风口:Q1季度擦窗机器人行业线上市场销售数据分析

今天给大家分享一个2024年的小众行业增长风口——擦窗机器人。 作为家居自动化里的重要一员&#xff0c;擦窗机器人可以简称为擦窗神器&#xff0c;是为了解决大户型家庭的外窗清洁痛点而存在。而目前&#xff0c;擦窗机器人行业正在走向成熟&#xff0c;且市场需求量居高不下…

Linux专题-Makefile(1)

1.Makefile中的注释使用 # 2. Makefile中的静默执行。 makefile中&#xff0c;默认情况下执行一行命令前会先把这一行命令打印出来&#xff0c;然后再执行这条命令。如果不想看到打印的命令&#xff0c;则可以使用静默执 行的功能&#xff0c;即仅打印出命令执行的结果。使用方…

苹果公司因iPad广告争议而道歉,承认“未达标”|TodayAI

周二&#xff0c;苹果公司发布了一则新的iPad Pro广告&#xff0c;引起了广泛争议&#xff0c;该公司随后发表道歉声明&#xff0c;承认这则广告“未达标”。这则名为“压碎&#xff01;”的广告意图展示全新的M4芯片iPad Pro的创意潜力&#xff0c;但却因其表现方式而备受批评…

设计模式学习笔记 - 回顾总结:在实际软件开发中常用的设计思想、原则和模式

概述 本章&#xff0c;先来回顾下整个专栏的知识体系&#xff0c;主要包括面向对象、设计原则、编码规范、重构技巧、设计模式五个部分。 面向对象 相对于面向过程、函数式编程&#xff0c;面向对象是现在最主流的编程范式。纯面向过程的编程方法&#xff0c;现在已经不多见了…

android——关于app性能优化篇

前言 应用性能优化是指通过各种技术手段和优化策略&#xff0c;提高应用程序的性能&#xff0c;使其能够更高效地运行和响应用户操作。 下面介绍一些常见的应用性能优化方法 一、布局优化 1、减少嵌套 嵌套层数尽量少&#xff0c;使用ConstaintLayout能使层级大大降低尽量使…

浅谈如何利用 AI 提高内容生产效率?|TodayAI

在数字化时代&#xff0c;内容的创建和分发速度变得尤为关键。人工智能&#xff08;AI&#xff09;技术提供了加速这一过程的可能性&#xff0c;不仅提升了生产效率&#xff0c;还改善了内容的质量和受众的接受度。本文深入探讨AI如何在内容生成、分发与推广&#xff0c;以及内…

LangChain连接国内大模型测试|智谱ai、讯飞星火、通义千问

智谱AI 配置参考 https://python.langchain.com/v0.1/docs/integrations/chat/zhipuai/ZHIPUAI_API_KEY从https://open.bigmodel.cn/获取 from langchain_community.chat_models import ChatZhipuAI from langchain_core.messages import AIMessage, HumanMessage, SystemMes…

超越机械抓手:看多指机器人如何灵活运用触觉?

论文标题&#xff1a; Learning Visuotactile Skills with Two Multifingered Hands 论文作者&#xff1a; Toru Lin, Yu Zhang, Qiyang Li, Haozhi Qi, Brent Yi, Sergey Levine, and Jitendra Malik 1. 机器人新挑战&#xff1a;多指手指操作 在自动化和智能化日益普及的…

mybatis useGeneratedKeys=“true“ keyProperty=“id“的作用

useGeneratedKeys“true” keyProperty"id"的作用 <insert id"save" parameterType"User" useGeneratedKeys"true" keyProperty"id"></insert>作用为&#xff1a;保存成功后往User类中的id属性赋值&#xff0c;…