[华为机试练习题]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;
}

你可能感兴趣的:(华为机试练习题)