对称平方数

时间限制:1秒 空间限制:32768K 热度指数:14383

算法知识视频讲解

校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。

题目描述

打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121。

输入描述:

输出描述:

每行一个数,表示对称平方数。

示例1

输入

复制

输出

复制

说明

对称平方数的难点是将int型数字拆分成int数组,并根据数组判断该数字是否对称的问题。

//#include <iostream>
#include <bits/stdc++.h>

using namespace std;

int main(){
    for(int i=1; i<256; i++){
        int res = i*i;
        int data[5];
        int cnt = 0;
        int tmp = res;
        while(tmp>0){
            data[cnt] = tmp%10;
            tmp = tmp/10;
            cnt++;
        }
        bool flag = true;
        for(int j =0; j <cnt/2; j++){
            if(data[j] != data[cnt-1-j]){
                flag = false;
            }
        }
        if(flag == true ){
            cout << i <<endl;
        }

    }
}

原文地址:https://www.cnblogs.com/superjn/p/10604794.html

时间: 2024-11-09 09:44:48

对称平方数的相关文章

九度OJ 1074 对称平方数

题目1074:对称平方数 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3671 解决:1624 题目描述: 打印所有不超过n(n<256)的,其平方具有对称性质的数. 如11*11=121 输入: 无任何输入数据 输出: 输出具有题目要求的性质的数.如果输出数据不止一组,各组数据之间以回车隔开. 单纯模拟: #include<stdio.h> #include<string.h> int check(int n) { int m=n*n; char s[20];

Project Euler 98:Anagramic squares 重排平方数

Anagramic squares By replacing each of the letters in the word CARE with 1, 2, 9, and 6 respectively, we form a square number: 1296 = 362. What is remarkable is that, by using the same digital substitutions, the anagram, RACE, also forms a square num

C语言(7)--高精度加法、减法、乘法、今天是星期几、四位平方数、候选人选票问题

1.高精度加法.减法.乘法 #include <stdio.h> #include <string.h> #include <malloc.h> void plus(char *a,char *b,char *c);//自定义高精度加法函数 void sub(char *a,char *b,char *c);//自定义高精度减法函数 void multiply(char *a,char *b,char *c);//自定义高精度乘法函数 int main() { char

洛谷P1206 [USACO1.2]回文平方数 Palindromic Squares

P1206 [USACO1.2]回文平方数 Palindromic Squares 271通过 501提交 题目提供者该用户不存在 标签USACO 难度普及- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 回文数是指从左向右念和从右向左念都一样的数.如12321就是一个典型的回文数. 给定一个进制B(2<=B<=20,由十进制表示),输出所有的大于等于1小于等于300(十进制下)且它的平方用B进制表示时是回文数的数.用’A’,’B’……表示10,11等等 输入输出格式 输入格式: 共

sicily-2499 平方数

题目分析: 一个数可以表示成四种状态,所以可以用一个状态数组来存放该数由几个数的平方和表示.1.表示该数本身是完全平方.2.表示该数是由两个平方和3.表示三个.4.表示4个.一次遍历找出本身是完全平方的数,二次遍历找出后两种情况. #include <iostream> #include <map> using namespace std; const int N = 60001; int main() { int s[60001] = {0}; int t,n; for(int

hdu1030 金字塔平方数求层数 数学题

这题我想了好久没思路,其实看得出来和高度有关,可能觉得算高度比较麻烦,想了一会,思路就断在那里了,现在知道了基础的重要性了,有些题目,可能第一步知道怎么思考了,就会容易很多 代码看过了,思路还是很清晰的,跨过的边就是层高,左层高 ,右层高的差值,下图所示,(代码明天有空再贴吧...) leve_n right_n left_n 其实比起来,怎么求层高是做完这题,我收获最大的,下面我来总结一下 leve 1:1->1 leve 2:3 ->4 leve 3:5 ->9 leve 5:7 -

平方数的口算或巧算

看到电视里讲 999*999 的口算方法: 先去掉一个 9 , 得到 99, 然后后面写个8, 然后 8 前面有几个 9, 后面就写几个 0, 最后加个1, 得到 998001. 敏感的我一看就其中肯定是从计算法则中挖掘的规律.而且没有这么复杂.请看 999*999 =(1000-1)^2 = 1000*1000 - 2*1000 + 1 = (1000-2) * 1000 + 1*1 因此更简单的口诀是: 前面写个 998, 后面写个 001. 前面有几个数, 后面就有几个数. 不信, 你算算

排它平方数

第四届蓝桥杯C/C++ A组第二题,题目如下: 小明正看着 203879 这个数字发呆.原来,203879 * 203879 = 41566646641.这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字.具有这样特点的6位数还有一个,请你找出它! 再归纳一下筛选要求: 1. 6位正整数 2. 每个数位上的数字不同 3. 其平方数的每个数位不含原数字的任何组成数位 首先把代码贴上来吧: 1 #include<e

BZOJ2440(全然平方数)二分+莫比乌斯容斥

题意:全然平方数是指含有平方数因子的数.求第ki个非全然平方数. 解法:比較明显的二分,getsum(int middle)求1-middle有多少个非全然平方数,然后二分.求1-middle的非全然平方数个数能够用总数减掉全然平方数个数.计算全然平方数的个数用容斥: 首先加上n/(2*2)+n/(3*3)+n/(5*5)+n/(7*7)...+...然后减掉出现两次的,然后加上三次的...奇加偶减.这就是mou的原型,用mou数组计算非常easy: 代码: /*****************