查找同构数的数量 (华为入职前练习)

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

详细描述:

  • 接口说明

原型:

  • intSearchSameConstructNum(int n);

输入参数:

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

返回值:

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

 

 

#include "stdafx.h"
#include "iostream"
#include "string"
using namespace std;

/*
功能:找出1至n之间同构数的个数
输入:
    int n:查找1至n之间的全部同构数
返回:
    int:1至n之间同构数的个数
*/
int SearchSameConstructNum(int n)
{
    int count=0,i;
	for (i=n;i>0;i--)
	{
		n=i;
		long int square=i*i;
		while (n!=0)
		{
			if(n%10==square%10)
			{
				n/=10;
				square/=10;
			}
			else
				break;
		}
		if (n==0)
		{
			count++;
		}
	}
    return count;
}


int main()
{
	int k =SearchSameConstructNum(9999);
	cout<<endl<<endl<<k<<endl;

	return 0;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值