求1-10000之间的同构数
来源:互联网 发布:工业控制网络标准协议 编辑:程序博客网 时间:2024/06/06 15:36
“同构数”是指这样的整数:它恰好出现在其平方数的右端。如:376*376=141376。请找出10000以内的全部“同构数”
来自360问答的题目,试着写了写,好歹实现了。
/*总结思路:1.求出1-10000之间每个数的位数(即这个数是几位数)2.再求出每个数的平方值,提取出最右端对应位数的数值出来(如369是个三个数,它的平方是136161,用取模%法提取出最右三位数字161)3.最好对比i与右端数 是否相等,相等即为同构数*/# include<stdio.h>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 = 15 * 5 = 256 * 6 = 3625 * 25 = 62576 * 76 = 5776376 * 376 = 141376625 * 625 = 3906259376 * 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<stdio.h>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时,明显不会是同构数,这里不作判定}*/}}
1 0
- 求1-10000之间的同构数
- C++实例 同构数 求1000以内的同构数
- 找出1至n之间同构数的个数---转载
- 找出1至n之间同构数的个数
- 求1-10000之间的水仙花数
- 10000以内的同构数
- 编程求 1~10000 之间的所有“完全数”
- 求1~1000之间的完全数
- 同构数的判断
- 数的同构
- 查找同构数的数量
- 查找同构数的数量
- 查找同构数的数量
- 查找同构数的数量
- 查找同构数的数量
- 同构数的Java实现
- 查找同构数的数量
- 查找同构数的数量
- Remove Duplicates from Sorted List II
- JS代码网
- Android如何使用API
- Java线程(十):CyclicBarrier-用路障实现分阶段线程并发
- 初学MongoDB(三)——c++ (java)接口
- 求1-10000之间的同构数
- Explain tables does not exist. Check the explain plan properties for this database connection.
- CSU 1333: Funny Car Racing 最短路
- javascript学习笔记
- 八
- UIImageView 的contentMode属性应用
- Binder机制1---Binder原理介绍
- mootools使用ajax返回json格式的代码
- 第三部分:ORACLE 12C中部署BIEE 11G 之RCU的安装