判断自守数
2016-05-06 13:12
501 查看
题目描述:
如果某个数的平方的末尾几位数等于这个数,那么就称这个数为自守数。
显然,5和6是一位自守数(5x5=25 6x6=36),25x25=625 76x76=5776,所以25和76是两位自守数。
输入一个数,判断该数是否为自守数。
解题思路:若采用“求出一个数的平方后再截取最后相应位数”的方法,显然是不可取的,因为计算机无法表示过大的整数。所以我们采取大数相乘的思想来存储这个数的平方。然后再去判断该平方项的后几位是否与原数相等。
如果某个数的平方的末尾几位数等于这个数,那么就称这个数为自守数。
显然,5和6是一位自守数(5x5=25 6x6=36),25x25=625 76x76=5776,所以25和76是两位自守数。
输入一个数,判断该数是否为自守数。
解题思路:若采用“求出一个数的平方后再截取最后相应位数”的方法,显然是不可取的,因为计算机无法表示过大的整数。所以我们采取大数相乘的思想来存储这个数的平方。然后再去判断该平方项的后几位是否与原数相等。
import java.util.Scanner; public final class Demo { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); System.out.println("please num:"); int n = scanner.nextInt(); System.out.println(isAutoMorphicNum(n)); } public static boolean isAutoMorphicNum(int num) { if(num < 0){ return false; } if(num == 0){ return true; } String s = String.valueOf(num); int[] number = new int[s.length()]; for(int i=0;i<s.length();i++){ number[s.length()-i-1] = s.charAt(i) - '0'; // "12345"-> 5,4,3,2,1 } int[] result = multi(number, number); String str = ""; for(int i=result.length-1;i>=0;i--){ str += result[i]; } String str1 = num + ""; if (str1.equals(str.substring(str.length() - str1.length()))) { //判断是否为自守数 return true; } return false; } //下面的方法实现大数相乘,将结果每一位保存到result数组中 public static int[] multi(int num1[], int num2[]){ int len1 = num1.length; int len2 = num2.length; int[] result = new int[len1 + len2]; for(int i=0;i<len1;i++){ for(int j=0;j<len2;j++){ result[i+j] += num1[i]*num2[j]; } } for(int i=0;i<result.length-1;i++){ if(result[i] > 10){ result[i+1] += result[i]/10; result[i] %= 10; } } return result; } }
相关文章推荐
- Tomcat端口被占用解决方法(不用重启)
- “传奇”图象数据存储方式
- 超大数据量存储常用数据库分表分库算法总结
- SQL Server误区30日谈 第18天 有关FileStream的存储,垃圾回收以及其它
- C++实现图的邻接表存储和广度优先遍历实例分析
- 详解Android文件存储
- 深入分析C++中两个大数相乘结果不正确的问题
- C#调用sql2000存储过程方法小结
- PHP 存储文本换行实现方法
- 注册表中存储数据库链接字符串的方法
- Mysql中存储UUID去除横线的方法
- MySQLMerge存储引擎
- 深入PHP变量存储的详解
- MySQL存储毫秒数据的方法
- MySQL存储过程中使用动态行转列
- Android App将数据写入内部存储和外部存储的示例
- 简介Android应用中sharedPreferences类存储数据的用法
- Android App中各种数据保存方式的使用实例总结
- 详解Android四种存储方式
- Android编程中的5种数据存储方式