查找同构数的数量

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

详细描述:

  • 接口说明

原型:

  • intSearchSameConstructNum(int n);

输入参数:

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

返回值:

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

完整代码:

#include "OJ.h"

/*
功能:找出1至n之间同构数的个数
输入:
    int n:查找1至n之间的全部同构数
返回:
    int:1至n之间同构数的个数
*/
int SearchSameConstructNum(int n)
{
    /*在这里实现功能*/
    long int m;
    int k;
    int cnt=0;
    for(int i=1;i<=n;i++)
    {
    	m=i*i;
    	k=i;
    	while(k)
    	{
    		if(k%10==m%10)
    		{
    			k=k/10;
    			m=m/10;
    		}
    		else
    			break;

    	}

    	if(k==0)
    		cnt++;
    }

    	return cnt;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-01 21:43:33

查找同构数的数量的相关文章

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

题目 描写叙述: 找出1至n之间同构数的个数. 同构数是这样一组数:它出如今平方数的右边.比如:5是25右边的数.25是625右边的数,5和25都是同构数. 具体描写叙述: 接口说明 原型: intSearchSameConstructNum(int n); 输入參数: int n:查找1至n之间的所有同构数 返回值: int:1至n之间同构数的个数 练习阶段: 0基础 代码 /*--------------------------------------- * 日期:2015-07-05 *

Codeforces 509F Progress Monitoring 给定dfs序求树的同构数 区间dp

题目链接:点击打开链接 ==说同构数有点不对..反正就是这个意思,对于某个点的所有儿子,先访问标号小的,再访问标号大的. dp[l][r]表示 区间[l,r] 构成一棵树的方法数. 对于一个区间[l, r] 构成一棵树,则点l一定是根,然后枚举2个区间相乘即可 dp[l][r] = dp[l+1][i] * dp[i+1][r] ( i = [l+1, r] ) 当然 a[i+1] > a[l+1] ,这样才会满足题目中的暴力代码. import java.io.PrintWriter; imp

算法--有序矩阵查找指定数

第18节 有序矩阵查找练习题 现在有一个行和列都排好序的矩阵,请设计一个高效算法,快速查找矩阵中是否含有值x. 给定一个int矩阵mat,同时给定矩阵大小nxm及待查找的数x,请返回一个bool值,代表矩阵中是否存在x.所有矩阵中数字及x均为int范围内整数.保证n和m均小于等于1000. 测试样例: [[1,2,3],[4,5,6],[7,8,9]],3,3,10 返回:false Java (javac 1.7) 代码自动补全 1 import java.util.*; 2 3 public

剑指Offer——在特殊数组中查找某数

问题:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断该数组中是否含有该整数.比如:在如下二维数组中查找是否有7,若存在,则返回true,否则,返回false. 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 此时,也许我们第一时间看到这个问题会很兴奋,想当然的觉得,如此简单的问题,何必在此浪费时间,不就是进行一次遍历数组嘛..但是再细细的想一想,面试官也不是等闲之辈,不会拿

程序员面试题目总结--数组(三)【旋转数组的最小数字、旋转数组中查找指定数、两个排序数组所有元素中间值、数组中重复次数最多的数、数组中出现次数超过一半的数】

转!http://blog.csdn.net/dabusideqiang/article/details/38271661 11.求旋转数组的最小数字 题目:输入一个排好序的数组的一个旋转,输出旋转数组的最小元素. 分析:数组的旋转:把一个数组最开始的若干个元素搬到数组的末尾.例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1.这道题最直观的解法并不难.从头到尾遍历数组一次,就能找出最小的元素,时间复杂度显然是O(N).但这个思路没有利用输入数组

在左移的递减数组中查找某数 【微软面试100题 第四十八题】

题目要求: 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1,}左移两位形成的,在这种数组中查找某个数. 题目分析: 方法1 逐个查找,遍历一遍数组,时间复杂度O(N). 方法2 二分查找,时间复杂度O(logN).具体分析见下图: 代码实现: #include <iostream> using namespace std; int Helper(int a[],int k,int s,int t); int FindKInArray(int

D-query SPOJ - DQUERY(莫队)统计不同数的数量

A - D-query Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you have to return the number of distinct elements in the subsequence ai, ai+1, ..., aj. Input L

C++ HOJ DS Series

[OJ 树系列] 二叉搜索树的创建与遍历 重建二叉树 求二叉树的深度和宽度 二叉搜索树 二叉树遍历 [OJ 表系列] 向升序单向链表中插入一个节点 [中级]双链表基本操作 删除链表中的重复节点.剩余节点逆序输出 [OJ 排序系列] 二维数组的列排序 整型字符串排序 日期排序 英文单词排序 整型数排序 输入整型数组和排序标识,对其元素按照升序或降序进行排序 整数排序 [OJ 查找系列] 查找兄弟单词 查找同构数的数量 查找非素数 [OJ 字符串系列] 字符串中找出连续最长的数字串 字符串最后一个单

数组问题 1.行列有序二维数组中查找2.在一组数成对出现的数中有两个数只出现一次3.在移位数组中查找一个数

一.在一个二维数组中,每一行都按从左到右递增的顺序排序,每一列都按从上到下的递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路: 首先选取数组中右上角的数字.如果该数字等于要查找的的数字,查找过程结束:如果该数字大于要查找的数字,剔除这个数字所在的列:如果该数字小于要查找的数字,剔除这个数字所在的行.也就是说如果要查找的数字不在数组的右上角,则每一次都在数组的查找范围剔除一行或一列,这样每一步都可以缩小查找的范围. 实现过程如下: 运行结果如下: