首页 > 其他分享 >求有操作的各位数和

求有操作的各位数和

时间:2023-08-15 20:12:41浏览次数:29  
标签:10 各位 数字 int 求有 n% 位数 ans 操作

如何求一个数的位数最大和

题目思路

给定一个数,从他最小位到最高位进行操作,对于每一位上的数字,可以选择让他加1,减1,或者是保持不变,求位数最大和(对于整体其实减去了一个10的多少次方)

思路

要使得每一位的总和最大,我们可以对每一位进行一个判断
我们只需要对0和9这两个数字进行判断即可,如果当前位不是0或者9,我们只需要加1保证他的最大值
如果当前位是9,我们就保持不变即可,因为9本身就是个位数中最大的数字
如果当前位数是0,我们就要-1,因此我们需要从前面一位去借一个1,例如100-1=99,90-1=89使得前面的数字也因此受到改变。

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve(){
    int n;
    cin>>n;
    int ans=0;
    if(n==0){
        ans=1;
    }
    else{
        while(n){
            if(n%10==0){
                n-=1;

            }
            else if(n%10!=9){
                n+=1;
            }
            ans+=(n%10);
            n/=10;
        }
    }
    cout<<ans<<endl;
    
}
int main(){
    int t;
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}

标签:10,各位,数字,int,求有,n%,位数,ans,操作
From: https://www.cnblogs.com/du463/p/17632319.html

相关文章

  • 【LeetCode 571. 给定数字的频率查询中位数】WITH RECURSIVE实现Tally的逆操作
    目录题目地址代码题目地址https://leetcode.cn/problems/find-median-given-frequency-of-numbers/description/代码WITHRECURSIVERecCTEAS(SELECTnum,frequency-1asremaining_frequencyFROMNumbersWHEREfrequency>0UNIONALLSELECTn......
  • JavaScript基础:学习JavaScript语言的基本语法和常用操作,了解网页交互的基本原理
    JavaScript是一种广泛应用于网页开发中的脚本语言,它可以与HTML和CSS一起使用,实现网页交互及动态效果。以下是JavaScript的基本语法和常用操作:变量声明:使用var、let或const关键字声明变量。varname="John";letage=25;constPI=3.14;数据类型:包括字符串、数字、布......
  • SPI与SDIO两种操作方式读写SD卡速度测试
    SPI与SDIO两种操作方式读写SD卡速度测试 目前嵌入式应用中,若要用到SD卡,一般有两种操作方式可选:一种是SPI操作SD卡的方式;一种是SDIO操作SD卡的方式。一般是SPI操作SD卡方式使用较多,因为一般正常的MCU都带有SPI接口,但SDIO接口一般存在于大容量MCU中,中小容量的MCU一般不带有SDI......
  • 【Alibaba中间件技术系列】「RocketMQ技术专题」让我们一起实践RocketMQ的服务搭建及
    推荐超值课程:点击获取RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点1、能够保证严格的消息顺序2、提供丰富的消息拉取模式3、高效的订阅者水平扩展能力4、实时的消息订阅机制5、亿级消息堆积能力搭建一个双节点的RocketM环境背景:虚拟机:vmware12操作系统:ce......
  • 视频监控管理平台EasyCVR视频平台通过navicat修改登录密码的具体操作步骤
    TSINGSEE青犀视频监控管理平台EasyCVR可以根据不同的应用场景需求,让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上,平台可实现视频实时直播、云端录像、云存储、回放与检索、告警上报、视频快照、视频转码与分发、平台级联等。......
  • 0基础转行产品经理可行吗?如何操作才靠谱?
    在多年的产品经验中,遇到了很多朋友同事咨询转行做产品的可行性,在沟通的过程中,大家都普遍认为零基础转行产品,对于一个已经有工作经验的人来说,是不是需要付出很大的努力,之前走的路就全白费了,在此我认为零基础转行产品经理完全可行。   首先我们需要了解产品经理是一个什么样的职位......
  • 【Linux技术专题】「必备基础知识」带你仔细梳理一下平时排查问题查询日志的基本操作
    Linux文件与目录管理了解和熟悉Linux系统的文件存储结构、权限设置和命令行工具,将有助于快速定位和解决与日志相关的问题,提高系统管理员和开发人员的工作效率。文件路径:Linux系统的日志文件按规定的目录结构组织。了解不同日志文件的存储位置和命名规则,可更快地找到所需的日志文件......
  • EAS_客户端设置按钮和菜单栏操作选项隐藏
    我们要想隐藏客户端的按钮或者菜单,防止操作,可以在listUI或者EditUI中onload()方法中使用下列方式来设置控件是否显示和是否可用,控件名可通过dep查看或者通过shift+alt+d来查看控件publicvoidonload(){//禁用按钮this.btnSave.setVisible(false);......
  • Python中对文件进行操作
    对于Python来说,文件处理绝对是一个常见的处理,读取文件、写入文件、生成文件……文件操作贯穿python变成始终。本篇文章将总结一下在平时编程过程中,常用的文件操作。以下将按照增删改查的顺序,对文件以及目录操作进行总结。新建文件和目录importos#新建文件new_file_path......
  • Git知识总览 git分支管理之rebase 以及 cherry-pick相关操作
    https://www.cnblogs.com/ludashi/category/1141984.html  上篇博客聊了《Git知识总览(三)分支的创建、删除、切换、合并以及冲突解决》,本篇博客我们主要来看一下 rebase 变基相关的操作。rebase操作和merge操作最终都可以达到合并代码的效果,不过其对分支的影响不同。......