c++求同构数

题目描述

所谓同构数是指这样的数,即它出现在它的平方数的右端。例如,5的平方是25 (即5×5=25),5是25右端的数,那么5就是同构数。又如,25的平方是625(即25×25=625),同理25也是同构数。找出通过键盘输入的两个正整数N和M(0

输入格式

任意给定的两个正整数N、M(0

输出格式

一个正整数,表示[N,M]之间同构数的个数。

样例输入/输出

输入数据 1

4 10

输出数据 1

2

数据规模与提示

时间限制:1000ms.

内存限制:256MB.

AC代码:

#include
using namespace std;
int n,m,t,s,a[100],b[100],sum,s1,s2,k;
int main(){
    cin>>n>>m;
    for(int i=n;i<=m;i++){
        t=i,s=i*i,s1=0,s2=0,k=1;
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        for(;t>0;t=t/10){
            s1++;
            a[s1]=t%10;
        }
        for(;s>0;s=s/10){
            s2++;
            b[s2]=s%10;
        }
        for(int j=1;j<=s1;j++)if(a[j]!=b[j])k=0;
        if(k)sum++;
    }
    cout<

你可能感兴趣的:(c++,算法,数据结构)