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

Posted zhchoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[华为机试练习题]58.查找同构数的数量相关的知识,希望对你有一定的参考价值。

题目

描写叙述:

找出1至n之间同构数的个数。

同构数是这样一组数:它出如今平方数的右边。比如:5是25右边的数。25是625右边的数,5和25都是同构数。

具体描写叙述:

接口说明
原型:

intSearchSameConstructNum(int n);

输入參数:

int n:查找1至n之间的所有同构数

返回值:

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

练习阶段:

0基础 

代码

/*---------------------------------------
*   日期: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;
}

以上是关于[华为机试练习题]58.查找同构数的数量的主要内容,如果未能解决你的问题,请参考以下文章

华为机试-自守数

华为机试练习字串的连接最长路径查找

[华为机试练习题]57.对象管理器

华为OD机试真题Java实现匿名信真题+解题思路+代码(2022&2023)

满分华为OD机试真题2023 JAVA&JS查找重复代码

[华为机试练习题]1.周期串问题