[華為機試練習題]58.查詢同構數的數量
阿新 • • 發佈:2019-02-13
題目
描述:
找出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;
}