首页 > 代码库 > [华为机试练习题]58.查找同构数的数量

[华为机试练习题]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;
}
<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

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