news 2026/8/11 5:45:25

刷题日记day6(数学)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
刷题日记day6(数学)

题目描述

  • 牛客小白月赛152E题 9运算
  • 题解来自大神Kendieer
  • 大神的牛客小白月赛125讲解

思路分析


C++代码展示

#include<bits/stdc++.h>#defineint__int128#definell__int128usingnamespacestd;inta1[100],a9[100];inlinellread(){ll x=0,f=0;charch=0;while(!isdigit(ch)){f|=(ch=='-');ch=getchar();}while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}returnf?(-x):x;}inlinevoidwrite(ll x){charnum[65];ll cnt=0;if(!x){putchar('0');return;}if(x<0){putchar('-');x=(-x);}while(x>0){num[cnt++]=x%10+'0';x/=10;}while(cnt>0){putchar(num[--cnt]);}}voidinit(){for(inti=1;i<=32;i++)a1[i]=a1[i-1]*10+1;for(inti=1;i<=32;i++)a9[i]=a1[i-1]*9;}voidsolve(){intans=1e35;intx=read();if(x%9==0){for(inti=1;i<=32;i++){if(a9[i]>=x){ans=min(ans,(a9[i]-x)/9);break;}}}for(inti=1;i<=32;i++){if(a9[i]-9*x>=0){intmiu=(a9[i]-9*x)/81;intlemuda=(a9[i]-81*miu-9*x)/9;inttemp=miu+lemuda+1;ans=min(ans,temp);}}write(ans);putchar('\n');}signedmain(){intT=read();init();while(T--)solve();return0;}

AI代码注释

#include<bits/stdc++.h>#defineint__int128// 重定义int为__int128,处理超大数避免溢出#definell__int128// 别名,简化__int128的书写usingnamespacestd;// 全局数组:a1[i]存储i个1组成的数(如a1[3]=111);a9[i]存储i个9组成的"好数字"(如a9[3]=999)inta1[100],a9[100];// 内联函数:读取__int128类型数字(cin/cout不支持__int128,手动实现)inlinellread(){ll x=0,f=0;// x存储数值,f标记是否为负数(本题x为正,f实际无作用)charch=0;// 跳过非数字字符while(!isdigit(ch)){f|=(ch=='-');// 若有负号,标记f=1ch=getchar();}// 逐位读取数字,计算数值(位运算优化:x*10 = x<<3 + x<<1)while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch^48);// ch^48等价于ch-'0',转字符为数字ch=getchar();}returnf?(-x):x;// 负数返回-x,正数返回x}// 内联函数:输出__int128类型数字(cin/cout不支持__int128,手动实现)inlinevoidwrite(ll x){charnum[65];// 存储数字的每一位字符(逆序)ll cnt=0;if(!x){// 特殊处理x=0的情况putchar('0');return;}if(x<0){// 处理负数(本题x为正,此分支无实际作用)putchar('-');x=(-x);}// 逐位拆分数字,存入num数组(逆序存储)while(x>0){num[cnt++]=x%10+'0';// x%10取最后一位,+ '0'转为字符x/=10;}// 逆序输出,恢复数字的正确顺序while(cnt>0){putchar(num[--cnt]);}}// 初始化函数:预处理生成a1和a9数组(32位以内的1序列和9序列)voidinit(){// 递推生成i个1组成的数:a1[1]=1, a1[2]=11, a1[3]=111...for(inti=1;i<=32;i++)a1[i]=a1[i-1]*10+1;// 递推生成i个9组成的"好数字":a9[1]=9, a9[2]=99, a9[3]=999...for(inti=1;i<=32;i++)a9[i]=a1[i-1]*9;}// 核心解题函数:计算将x转为"好数字"的最少步数voidsolve(){intans=1e35;// 初始化最小步数为极大值(1e35远大于可能的最大步数)intx=read();// 读取当前测试用例的初始数字x// 场景1:不使用乘9操作,仅通过加9变为好数字if(x%9==0){// 前提:x必须是9的倍数(好数字都是9的倍数)// 枚举所有位数的好数字,找到第一个比x大的for(inti=1;i<=32;i++){if(a9[i]>x){// 计算加9步数:(好数字 - x)/9,更新最小步数ans=min(ans,(a9[i]-x)/9);break;// 第一个更大的好数字步数最少,无需继续枚举}}}// 场景2:使用1次乘9操作,再通过加9变为好数字for(inti=1;i<=32;i++){// 好数字需≥9*x(乘9后的数字),否则无法通过加9得到if(a9[i]-9*x>=0){// 拆分加9操作:miu是加81(9*9)的次数,lemuda是剩余加9的次数intmiu=(a9[i]-9*x)/81;intlemuda=(a9[i]-81*miu-9*x)/9;inttemp=miu+lemuda+1;// 总步数=加81次数+加9次数+1次乘9ans=min(ans,temp);// 更新最小步数}}write(ans);// 输出最小步数putchar('\n');// 换行分隔测试用例}// 主函数:处理多组测试用例signedmain(){intT=read();// 读取测试数据组数Tinit();// 预处理生成1序列和9序列数组while(T--)solve();// 逐组处理测试用例return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/10 14:38:53

【高端图形渲染必修课】:掌握4种专业级抗锯齿算法核心原理

第一章&#xff1a;渲染的抗锯齿技术概述在计算机图形学中&#xff0c;抗锯齿&#xff08;Anti-Aliasing&#xff09;是用于消除图像边缘“锯齿”现象的关键技术。这种锯齿通常出现在高对比度边界处&#xff0c;例如几何图形或多边形边缘&#xff0c;是由于像素离散采样导致的走…

作者头像 李华
网站建设 2026/8/10 3:49:12

掌握低代码PHP属性绑定的5个关键步骤(开发者必藏秘籍)

第一章&#xff1a;低代码PHP属性绑定的核心概念在现代Web开发中&#xff0c;低代码平台通过简化逻辑与数据的关联过程&#xff0c;显著提升了开发效率。PHP作为服务端 scripting 语言的重要代表&#xff0c;其属性绑定机制在低代码环境中扮演关键角色。属性绑定本质上是将表单…

作者头像 李华
网站建设 2026/8/10 12:26:42

2025最新模温机供应商厂家推荐排行榜

在工业生产的精密温控领域&#xff0c;模温机的重要性不言而喻。它如同工业生产中的“温度魔法师”&#xff0c;精准调控温度&#xff0c;保障着生产的高效与稳定。2025年&#xff0c;市场上的模温机供应商众多&#xff0c;究竟哪些厂家能够在专业实力和客户满意度上脱颖而出呢…

作者头像 李华
网站建设 2026/8/10 19:30:51

(开源项目)xsun_workflow_jira

JIRA 工时自动填报 Agent xsun_workflow_agent 项目简介 这是一个基于 AI 的 JIRA 工时自动填报系统&#xff0c;能够根据用户的 Git 提交记录自动分析并填写 JIRA 工作日志。该系统通过集成 LangChain4j 框架&#xff0c;利用大语言模型的能力&#xff0c;智能地将 Git 提交…

作者头像 李华
网站建设 2026/8/11 0:24:42

Laravel 13多模态文档实战指南(9大核心功能全曝光)

第一章&#xff1a;Laravel 13多模态文档的核心演进Laravel 13 引入了革命性的多模态文档系统&#xff0c;标志着框架在开发者体验和生态集成上的重大飞跃。该系统不再局限于传统的 Markdown 或 PHPDoc 注解&#xff0c;而是支持结构化文本、交互式代码示例、嵌入式可视化图表以…

作者头像 李华
网站建设 2026/8/10 6:20:20

客户来一单就走人?先搞懂这 3 个复购率关键指标!

先说句实在话&#xff1a; 客户来一单就走人&#xff0c;大部分时候不是客户“无情”&#xff0c;是我们根本没看对数。很多老板一谈复购&#xff0c;就上来问&#xff1a; “搞点活动吧&#xff1f;” “要不要弄个会员等级&#xff1f;” “要不要发点优惠券&#xff1f;”这…

作者头像 李华