“同构数”是指这样的整数:它恰好出现在其平方数的右端。如:376*376=141376。请找出10000以内的全部“同构数”

来自360问答的题目,试着写了写,好歹实现了。

/*总结思路:

1.求出1-10000之间每个数的位数(即这个数是几位数)

2.再求出每个数的平方值,提取出最右端对应位数的数值出来(如369是个三个数,它的平方是136161,用取模%法提取出最右三位数字161)

3.最好对比i与右端数 是否相等,相等即为同构数*/

# include

void main(void)

{

int digit = 0; //记录同构数的位数

int square = 0; //记录平方值

int rightvalue = 0; //平方数的右端的值

int t =0, times =1;//临时变量(循环期间会重置)

for(int i=1; i<=10000; i++){

digit = 0 ; //每次循环重置位数

rightvalue = 0;

times = 1;

t = i;

square = i * i;

while(t){

t/=10;

digit++;

}

while(digit--){

rightvalue += (square%10)*times;

square/=10;

times *= 10;

}

if(i == rightvalue){

printf("%d * %d = %d\n", i, i, i*i);

}

}

}

/******VC++6.0中执行结果如下*********

1 * 1 = 1

5 * 5 = 25

6 * 6 = 36

25 * 25 = 625

76 * 76 = 5776

376 * 376 = 141376

625 * 625 = 390625

9376 * 9376 = 87909376

************************************/

新增算法:(执行结果同上)

/*这两天还在想这个问题,感觉多重if判定比上面多重循环要更优一点。

不过前面的算法太复杂,但更大的数值判定不须再增加条件去,改i的范围就行

而这个数值每多一位数要加一重判定,好处是简单易懂。*/

/*

思路:

1.先明确i数值的位数,再用i平方的值(i*i)取余

2.对i的平方值取余的位数等同i这个数值的位数

(如i=123为3位数,123*123=15129,对15129取三个余数,即15129%1000 = 129)

3.对比i == (i*i)%10 (位数每增加1位,%取余位相应增加)

*/

# include

void main(void)

{

for(int i = 1; i<=10000; i++){

if(i>=1 && i<=9){//i是1位数时

if(i == (i*i)%10)//(注意*的运算优先级大于%,后面都不加括号了)

printf("%d * %d = %d\n", i, i, i*i);

}

else if(i>=10 && i<=99){//i是2位数时

if(i == i*i%100)

printf("%d * %d = %d\n", i, i, i*i);

}

else if(i>=100 && i<=999){//i是3位数时

if(i == i*i%1000)

printf("%d * %d = %d\n", i, i, i*i);

}

else if(i>=1000 && i<=9999){//i是4位数时

if(i == i*i%10000)

printf("%d * %d = %d\n", i, i, i*i);

}

/*if(i==10000){//当i为10000时,明显不会是同构数,这里不作判定

}*/

}

}

Java 求1000以内的同构数_求1-10000之间的同构数相关推荐

  1. java求1000以内所有完数

    这回是java编写,求1000以内所有完数. 完数:一个数如果恰好等于除它本身外的因子之和,这个数就称为完数. 例:6=1+2+3(6的因子是1,2,3). public class java7{ p ...

  2. java蓝桥杯算法训练 求1000以内的完数(题解)

    试题 算法训练 求1000以内的完数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为"完数". ...

  3. C语言 | 求1000以内的所有完数及求2000以内最大的完数(C源代码)

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  4. 求 1000 以内的完数

    求 1000 以内的完数 完数:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.例如:6 = ...

  5. C++中如何读取一个数的位数_求1000以内的水仙花数

    点击上方 蓝字关注我们 大家好,我是阿汤哥. 看知乎上有朋友说还不明白怎么判断水仙花数,今天我们就来看看这个问题.(PS:"求1000以内的水仙花数"这道题阿汤哥记忆犹新.到现在还 ...

  6. java求1000以内的回文素数_C语言求回文素数

    任意的整数,当从左向右读与从右向左读是相同的,且为素数时,称为回文素数.求 1000 以内的所有回文素数. 算法思想 实例的重点是判断一个数是否是回文素数.要输出 1000 以内的所有回文素数,首先应 ...

  7. 2021-04-09编程求1000以内的所有“完数”。所谓“完数”是指一个数恰好等于它的因子之和。例如,6是完数,因为6=1+2+3

    编程求1000以内的所有"完数".所谓"完数"是指一个数恰好等于它的因子之和.例如,6是完数,因为6=1+2+3 #include"stdio.h&q ...

  8. 求1000以内的所有水仙数c语言,求1000以内的所有水仙花数

    求1000以内的所有水仙花数 #include//打印1000以内所有的水仙花数 int main() { int i,baiwei=0,shiwei=0,gewei=0; for(i=1;i< ...

  9. 一道面试题:用多线程求1000以内的素数有多少个?并给出消耗时间

    我曾经去一个公司面试,遇到这么一个题目:求1000以内的素数有多少个?用多线程实现,并给出消耗时间.我想了半天,没有想出多线程的解决方案.今天因为机缘到了,我浅谈下我的解法. 这道题,显然得考虑两个问 ...

  10. c语言1000以内能被7或11,C++编程:求1000以内(包括1000)能被5同时又能被

    1楼:董俊锟 #include using namespace std; int main() cout< return 0;} 求c语言高手 输出1000以内既能被5整除又能被7整除的数,要求 ...

最新文章

  1. java内存模型-JMM
  2. nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping
  3. python百鸡百钱递归_百钱百鸡,一百块钱买一百只鸡的递归算法 javascript实现
  4. php设计模式的六大原则(六):迪米特法则
  5. MySQL安装叫重启_MySQL重启命令和MySQL数据库安装目录的操作过程
  6. 《Scikit-Learn与TensorFlow机器学习实用指南》第15章 自编码器
  7. Effective_STL 学习笔记(四十八) 总是 #incude 适当的头文件
  8. java selenium (十三) 智能等待页面加载完成
  9. nginx简介(轻量级开源高并发web服务器:大陆使用者百度、京东、新浪、网易、腾讯、淘宝等)(并发量5w)(一般网站apache够用了,而且稳定)...
  10. java生成条形码~~使用barcode4j在线生成条形码
  11. visio怎么画球_cad怎么画装配图
  12. Windows系统用户目录Users迁移教程
  13. Ubuntu16.04系统美化
  14. python模块总结_Python常用模块资料总结和归纳
  15. 2018ccpc网络赛1010 J - YJJ's Salesman
  16. edg击败we视频_2017LPL春季赛4月8日WE VS EDG视频:EDG 2:0 WE获胜
  17. 块状元素与内联元素嵌套规则
  18. Eclipse+Pydev详细配置
  19. 带变压器和不带变压器的RJ45
  20. FPGA入门嵌入式 块RAM双口RAM使用

热门文章

  1. Vmware提示:host usb device connections disabled-(vmware 主机已禁用 usb 设备连接)
  2. Windows Phone 7范例游戏Platformer实战5——多点触控编程
  3. 编写一个基本的Android程序
  4. 在Python-dataframe中如何把出生日期转化为年龄?
  5. Odoo 菜单美化的扩展模块
  6. 【Java集合源码剖析】TreeMap源码剖析
  7. 深度学习中tensorflow框架的学习
  8. VMware 全虚拟打开
  9. Linux服务器的最大内存和CPU数
  10. [转载] 七龙珠第一部——第125话 神将登场