OJ3376无尽的石头问题

答案:

#include<bits/stdc++.h>
using namespace std;
const int N=10e7;
int fx(int n)
{int sum=0;while(n){sum+=(n%10);n/=10;}return sum;
}
int main()
{int t,n,x;cin>>t;while(t--){cin>>n;int count=0;for(int i=1;i<N;){if(i==n){cout<<count<<'\n';break;}else if(i>n){cout<<-1<<'\n';break;}x=fx(i);i=(i+x);count++;}
}return 0;
}

代码的逻辑:

  • 函数 fx 计算一个整数 n 的各位数字之和。
  • 主函数中首先读取测试案例数量 t,然后对于每个测试案例,读取目标值 n
  • 代码使用一个 for 循环从 i = 1 开始,逐步计算下一个值 i,直到 i 等于或大于 n

假设 n = 5,代码的执行过程如下:

  1. t = 1(一个测试案例)
  2. n = 5(目标值)
  3. 初始化 count = 0i = 1

进入 for 循环:

  • 第一轮循环

    • i = 1
    • 计算 x = fx(1) = 1
    • 更新 i = i + x = 1 + 1 = 2
    • count++count = 1
  • 第二轮循环

    • i = 2
    • 计算 x = fx(2) = 2
    • 更新 i = i + x = 2 + 2 = 4
    • count++count = 2
  • 第三轮循环

    • i = 4
    • 计算 x = fx(4) = 4
    • 更新 i = i + x = 4 + 4 = 8
    • count++count = 3
  • 第四轮循环

    • i = 8
    • 这时 i > n,所以输出 -1,并退出循环。

因此,对于 n = 5,程序将输出 -1

我们再通过另一个例子 n = 10 来分析:

  1. t = 1(一个测试案例)
  2. n = 10(目标值)
  3. 初始化 count = 0i = 1

进入 for 循环:

  • 第一轮循环

    • i = 1
    • 计算 x = fx(1) = 1
    • 更新 i = i + x = 1 + 1 = 2
    • count++count = 1
  • 第二轮循环

    • i = 2
    • 计算 x = fx(2) = 2
    • 更新 i = i + x = 2 + 2 = 4
    • count++count = 2
  • 第三轮循环

    • i = 4
    • 计算 x = fx(4) = 4
    • 更新 i = i + x = 4 + 4 = 8
    • count++count = 3
  • 第四轮循环

    • i = 8
    • 计算 x = fx(8) = 8
    • 更新 i = i + x = 8 + 8 = 16
    • count++count = 4
  • 第五轮循环

    • i = 16
    • 这时 i > n,所以输出 -1,并退出循环。

对于 n = 10,程序同样输出 -1

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

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

相关文章

在github上创建(上传、关联)自已的项目

目录 创建一个github项目并进行开发。 1.github创建空项目 2. git clone 项目 3. 将项目关联 创建一个github项目并进行开发。 1.github创建空项目 右边的New 然后按步创建就行 2. git clone 项目 复制这个连接 然后在终端&#xff1a;git clone [刚才复制的连接] 3. 将…

解读 Explainable Image Similarity Integrating Siamese Networks and Grad-CAM

给出论文&#xff08;Explainable Image Similarity Integrating Siamese Networks and Grad-CAM&#xff09;的内容解读、代码运行说明 论文链接&#xff1a;J. Imaging | Free Full-Text | Explainable Image Similarity: Integrating Siamese Networks and Grad-CAM (mdpi.c…

纯网络的系统能否定级备案?

很多单位想把网络基础设施进行定级备案和测评&#xff0c;但是不知道这样可否&#xff1f; 目前湖北省是可以的。因为根据《定级指南》的术语解释3.2对等级保护对象的定义是包括通信基础设施的&#xff0c;也就是网络基础设施。其他地区目前有的地方可以有的地方不行&#xff…

2024年武汉东湖高新中级职称报名时间是什么时候?

2024年武汉市东湖高新中级职称上半年批次报名已经截止了&#xff0c;下半年东湖高新至少还有一次报名机会&#xff0c;所以各位东湖高新区评职称的朋友们&#xff0c;不要错过这次了。 2024年武汉东湖高新区中级职称报名条件&#xff1a; 1.东湖高新区社保满足1年&#xff0c;近…

进口不锈钢气动输送泵-美国品牌

进口不锈钢气动输送泵是一种利用压缩空气为动力&#xff0c;通过气阀控制进行往复运动&#xff0c;将能量转换为泵的动能&#xff0c;从而实现对液体或固体物料输送的设备。以下是关于进口不锈钢气动输送泵的详细介绍&#xff1a; 一、产品特点 材质优良&#xff1a;主体部分…

seata源码分析(03)_创建代理的过程

seata提供了ProxyUtil工具类为事务组件创建代理对象&#xff0c;在spring环境中&#xff0c;seata提供了GlobalTransactionScanner类和SeataAutoDataSourceProxyCreator为组件创建AOP代理&#xff0c;本文重点分析这两个类。 ProxyUtil io.seata.integration.tx.api.util.Pro…

【中年危机】程序猿自救指南

中年危机&#xff0c;一个听起来就充满挑战的词汇&#xff0c;它不仅仅是一个年龄的标记&#xff0c;更是一个个人成长和职业发展的转折点。 构架个人品牌&#xff1a; 学会打造IP个人品牌是职业生涯中的重要资产。在中年时期&#xff0c;你已经积累了丰富的经验和知识&#x…

golang的http客户端封装

简介 net/http 是 Go 语言标准库的一部分&#xff0c;它提供了创建 HTTP 客户端和服务器的能力。这个包通过简化与 HTTP 协议的交互&#xff0c;让开发者能够方便地构建 HTTP 请求和响应&#xff0c;以及处理路由等任务。 本文以 net/http 包作为底层&#xff0c;封装一个包含…

HTCC电路板是什么,有哪些主要应用领域

HTCC英文名称是High-Temperature Co-Fired Ceramic&#xff0c;又称高温共烧多层陶瓷基板。因其具有导热系数高、耐热性好、热膨胀系数小、机械强度高、绝缘性好、耐腐蚀等优势&#xff0c;是保持高速增加的PCB线路板之一。 SPEA作为专业电路板测试设备方案服务商&#xff0c;公…

FY-SA-20237·8-WhyWeSpin

Translated from the Scientific American, July/August 2023 issue. Why We Spin (我们为什么旋转) Primates may play with reality by twirling around 翻译&#xff1a;灵长类动物有能力通过旋转或旋转运动来操纵或扭曲他们对现实的感知。 解释&#xff1a; “Primates”…

Java生成指定长度验证码

生成指定长度验证码的简单思路在Java中通常涉及以下几个步骤&#xff1a; 1、定义字符池&#xff1a; 首先&#xff0c;需要定义一个包含所有可能字符的字符串&#xff0c;这个字符池通常包括数字(0-9)、大写字母(A-Z)、小写字母(a-z)。 例如&#xff1a; String chars "…

【开发心得】三步本地化部署llama3大模型

目录 第一步&#xff1a;启动ollama 第二步&#xff1a;启动dify 第三步&#xff1a;配置模型&#xff08;截图&#xff09; 最近llama3很火&#xff0c;本文追击热点&#xff0c;做一个本地化部署的尝试&#xff0c;结果还成功了&#xff01; 当然也是站在别人的肩膀上&…

【运维项目经历|027】PXE自动化部署与管理平台

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

Nginx企业级负载均衡:技术详解系列(18)—— 作为上传服务器

你好&#xff0c;我是赵兴晨&#xff0c;97年文科程序员。 在上一期的技术分享中&#xff0c;我们探讨了如何高效搭建Nginx下载服务器&#xff0c;并讨论了长连接优化策略。那么今天&#xff0c;咱们进一步了解Nginx的另一面——作为上传服务器的配置技巧。 作为上传服务器&a…

怎么做好企业短信服务呢?(文字短信XML接口示例)

企业短信服务已经成为各行各业都信赖的行业推广方式之一&#xff0c;并且短信行业也与时俱进的发展着&#xff0c;随之而来的就是市场上短信平台的数量也随之增多。那么怎么在鱼龙混杂的短信行业中选择适合自己的企业短信服务平台呢&#xff1f;企业短信服务平台又适用于哪些应…

Django的PATH路径转换器

本书1-7章样章及配套资源下载链接: https://pan.baidu.com/s/1OGmhHxEMf2ZdozkUnDkAkA?pwdnanc 源码、PPT课件、教学视频等&#xff0c;可以从前言给出的下载信息下载&#xff0c;大家可以评估一下。 在Django框架中&#xff0c;默认内置了一组PATH路径转换器&#xff0c;具…

第一篇【传奇开心果系列】AI工业应用经典算法和Python示例:基于AI的智能制造技术经典算法与Python实践

传奇开心果博文系列 系列博文目录AI工业应用经典算法和Python示例系列 博文目录前言一、AI在智能制造方面的应用场景介绍二、基于AI的智能制造技术经典算法介绍三、支持向量机机器学习算法Python示例代码四、随机森林机器学习算法Python示例代码五、深度学习算法Python示例代码…

linux指令-高阶指令用法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 linux操作系统的环境变量的使用基础需要先了解 提示&#xff1a;以下是本篇文章正文…

【linux】(2)文件内容排序sort

sort 是一个用于排序文件内容的命令行工具&#xff0c;在 Linux 和 Unix 系统中非常常用。 基本用法 sort [OPTION]... [FILE]...常用选项 按数值排序 -n sort -n filename例子&#xff1a;对包含数值的文件进行排序。 按字典顺序排序 -d sort -d filename例子&#xff1…

大宋咨询(深圳酒店神秘顾客调查)酒店客房神秘人体验调查内容

酒店客房神秘检查内容&#xff0c;是酒店管理中至关重要的环节。通过专业的神秘顾客对客房进行细致入微的检查&#xff0c;可以确保客房的清洁度、设施设备的完好性以及服务质量等方面达到高标准&#xff0c;帮助他们更好地了解客户的需求和满意度&#xff0c;从而提高服务质量…