[华为机试练习题]58.查找同构数的数量

简介:

题目

描述:

找出1至n之间同构数的个数。同构数是这样一组数:它出现在平方数的右边。例如:5是25右边的数,25是625右边的数,5和25都是同构数。

详细描述:

接口说明
原型:

intSearchSameConstructNum(int n);

输入参数:

int n:查找1至n之间的全部同构数

返回值:

int:1至n之间同构数的个数

练习阶段:

初级 

代码

/*---------------------------------------
*   日期:2015-07-05
*   作者:SJF0115
*   题目:查找同构数的数量
*   来源:华为机试练习题
-----------------------------------------*/
#include <iostream>
#include "OJ.h"
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;

/*
功能:找出1至n之间同构数的个数
输入:
    int n:查找1至n之间的全部同构数
返回:
    int:1至n之间同构数的个数
*/
int SearchSameConstructNum(int n){
    int square,tmp;
    int count = 0;
    for(int i = 1;i <= n;++i){
        square = i * i;
        tmp = i;
        while(tmp){
            if(square % 10 != tmp % 10){
                break;
            }//if
            square /= 10;
            tmp /= 10;
        }//while
        if(tmp == 0){
            ++count;
        }//if
    }//for
    return count;
}
目录
相关文章
|
3月前
Leetcode第40题(组合总和2)
LeetCode第40题“组合总和II”的解题方法,使用了回溯法来找出所有可能的组合,并对重复元素进行了处理。
32 0
|
3月前
【LeetCode 51】216.组合总和III
【LeetCode 51】216.组合总和III
15 1
|
8月前
|
算法 搜索推荐 程序员
第四十七练 请以递归方式实现计算整数列表的最大值
第四十七练 请以递归方式实现计算整数列表的最大值
58 2
|
算法
【算法挨揍日记】day06——1004. 最大连续1的个数 III、1658. 将 x 减到 0 的最小操作数
1004. 最大连续1的个数 III 题目描述: 给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数 。
416 1
|
机器学习/深度学习 Cloud Native
【刷题日记】2044. 统计按位或能得到最大值的子集数目
本次刷题日记的第 8 篇,力扣题为:2044. 统计按位或能得到最大值的子集数目 ,中等
LeetCode 39. 组合总和
LeetCode 39. 组合总和
94 0
leetcode 216组合总和III
leetcode 216组合总和III
83 0
leetcode 216组合总和III
力扣40. 组合总和 IIJava
力扣40. 组合总和 IIJava
69 0
LeetCode 1394. 找出数组中的幸运数
在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。
97 0