1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

只需考虑完全平方数。设 x=i2≤nx=i^2 \le nx=i2≤n,将其转为字符串 sss,枚举所有切分点,将其分为左右两段:

  • 两段都非空;
  • 不允许有前导零(除单独的 "0");
  • 转为整数后,两段都必须是完全平方数。

为快速判断某个数是否为完全平方数,预处理所有不超过 10910^9109 的平方数,存入哈希集合。

P4678.第2题-完全平方数

    1000ms Tried: 254 Accepted: 50 Difficulty: 4 所属公司 : 阿里
    算法与标签>暴力枚举

题目内容

定义一个正整数为完完全全平方数,当且仅当同时满足:

  • 该数本身是完全平方数;
  • 存在一个切分点,使得在该切分点将该数的十进制表示切分为两段后,两段均非空且对应的十进制整数也都是完全平方数。
  • 切分处只能发生在相邻两位之间;任一段不允许有前导零(除非该段仅为单个字符 "0")。

例如:若我们使用 ∣|∣标记切分点,在整数 161616 中,唯一的切分点为 16∣116|116∣1,因为 161616 和 111 均是完全平方数(但 161161161 不是 “完完全全平方数”,因为它本身不是完全平方数);在整数 160116011601 中,不存在满足条件的切分点。

给定上界 nnn,问不超过 nnn 的完完全全平方数共有多少个。

名词解释

完全平方数:一个数如果可以表示为某个整数的平方,那么这个数就是完全平方数。例如,前十个完全平方数是 0,1,4,9,16,25,36,49,64,810,1,4,9,16,25,36,49,64,810,1,4,9,16,25,36,49,64,81。

输入描述

每个测试文件均包含多组测试数据:

  1. 第一行输入一个整数 T(1≤T≤50)T (1≤T≤50)T(1≤T≤50),表示数据组数;
  2. 此后 TTT 行,每行输入一个整数 n(1≤n≤109)n (1≤n≤10^9)n(1≤n≤109),表示上界。

输出描述

对于每一组测试数据,新起一行,输出一个整数,表示满足条件的数的个数。

样例1

输入

1
50

输出

1 3 5 5 5 

说明

  • 不超过505050的正完全平方数为{1,4,9,16,25,36,491,4,9,16,25,36,491,4,9,16,25,36,49}
  • 只有494949能被切成“444”和“999”,且二者均为完全平方数;
  • 因此答案为111。

样例2

输入

1
1500

输出

5

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 1, 41ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?