首页 > 试题广场 >

对称平方数1

[编程题]对称平方数1
  • 热度指数:28063 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
打印所有不超过256,其平方具有对称性质的数。如2,11就是这样的数,因为2*2=4,11*11=121。

输入描述:
无任何输入数据


输出描述:
输出具有题目要求的性质的数。如果输出数据不止一组,各组数据之间以回车隔开。
示例1

输入

输出

#include <stdio.h>

int isDuichengnum(int m) {
    int remain;
    int reverse = 0;
    while (m) {
        remain = m % 10;
        m = m / 10;
        reverse = reverse * 10 + remain;
    }
    return reverse;
}


int main() {
    for (int i = 0; i <= 256; ++i) {
        if (i * i == isDuichengnum(i * i)) {
            printf("%d\n", i);
        }
    }
    return 0;
}

发表于 2024-04-09 19:27:31 回复(0)
#include<stdio.h>
int reverse(int a) {//求i平方的逆序数
    int remin = 0;
    int rev = 0;
    while (a > 0) {
        remin = a % 10;
        a = a / 10;
        rev = rev * 10 + remin;
    }
    return rev;
}
int main() {
    for (int i = 0; i <=256; i++)//遍历256以内满足条件的数
    {
        if (i*i == reverse(i*i))
        {
            printf("%d\n", i);
        }
    }
}
发表于 2023-03-16 22:02:23 回复(0)
#include<stdio.h>
int reverse(int n){
    int remain,reverse_1=0;
    while(n>0){
        remain=n%10;
        reverse_1*=10;
        reverse_1+=remain;
        n/=10;
    }
    return reverse_1;
}
void compute(int a,int b,int c){
    if(a==10)
        return;
    if(b==10){
        compute(a+1,0,0);
        return;
    }
    if(c==10){
        compute(a,b+1,0);
        return;
    }
    int total=a*100+b*10+c;
    int squre=total*total;
    if(total>256)
        return;
    if(squre==reverse(squre)){
        printf("%d\n",total);
    }
    compute(a,b,c+1);
}
int main(){
    compute(0,0,0);
    return 0;
}
发表于 2023-02-19 22:57:38 回复(0)
暴力求解
#include<stdio.h>
int compare(int a)
{
    int b[5],i,m,n=0;
    for(i=0;a!=0;i++)
    {
        b[i]=a%10;
        a=a/10;
    }
    m=i/2;
    for(int j=0;j<i/2&&b[j]==b[i-1];j++)
    {
        i=i-1;
        n++;
    }
    if(n==m)
    {
        return 1;
    }
    return 0;
}

int main(){
    int x,result;
    for(int i=0;i<=256;i++)
    {
        x=i*i;
        result=compare(x);
        if(result==1)
        {
            printf("%d\n",i);
        }
    }
    return 0;
}

发表于 2022-03-07 15:25:16 回复(0)