题解 | #自守数#
自守数
https://www.nowcoder.com/practice/88ddd31618f04514ae3a689e83f3ab8e
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; void (async function () { // Write your code here let n; while ((line = await readline())) { n = parseInt(line); } let count = 0; /* 挨个判断:两个条件 1、判断i的平方中是否含有i 2、判断i是否处于i平方的末尾 --将i和i平方都转化为字符串 --求得i在i平方中的索引index --如果index+i.length==i^2.length,那么这个就是自守数 **居然有一个方法endsWith()用来判断是否以指定字符串结尾,那更方便了 */ //解法1:不知道有endsWith() // for (let i = 0; i <= n; i++) { // let ji = (i * i).toString(); // if (ji.includes(i)) { // let index = ji.indexOf(i); // if (index + (i + "").length == ji.length) { // count++; // } // } // } // 解法2:用endsWith() for(let i=0;i<=n;i++){ let ji=i*i+''; if(ji.endsWith(i+'')){ count++ } } console.log(count); })();