算法题练习系列之(一):守形数
2017-06-22 10:08
211 查看
-----------------------------------------------------------------------------------------------------------
时间限制:1秒 空间限制:32768K
-----------------------------------------------------------------------------------------------------------
题目描述
守形数是这样一种整数,它的平方的低位部分等于它本身。 比如25的平方是625,低位部分是25,因此25是一个守形数。 编一个程序,判断N是否为守形数。
输入描述:
输入包括1个整数N,2<=N<100。
输出描述:
可能有多组测试数据,对于每组数据,
输出"Yes!”表示N是守形数。
输出"No!”表示N不是守形数。
输入例子:
25
4
输出例子:
Yes!
No!
-----------------------------------------------------------------------------------------------------------
[b]实现思路:[/b]
(1).取一个数的平方,可以通过字符串方式进行截取后比较是否一致;
(2).也可以对平方后的数据对10取余,得到处理后的数,与原数据进行比较;
(3).需要注意的是,题目给出的定义并不很明确,需要考虑数字的位数。
-----------------------------------------------------------------------------------------------------------
时间限制:1秒 空间限制:32768K
-----------------------------------------------------------------------------------------------------------
题目描述
守形数是这样一种整数,它的平方的低位部分等于它本身。 比如25的平方是625,低位部分是25,因此25是一个守形数。 编一个程序,判断N是否为守形数。
输入描述:
输入包括1个整数N,2<=N<100。
输出描述:
可能有多组测试数据,对于每组数据,
输出"Yes!”表示N是守形数。
输出"No!”表示N不是守形数。
输入例子:
25
4
输出例子:
Yes!
No!
-----------------------------------------------------------------------------------------------------------
[b]实现思路:[/b]
(1).取一个数的平方,可以通过字符串方式进行截取后比较是否一致;
(2).也可以对平方后的数据对10取余,得到处理后的数,与原数据进行比较;
(3).需要注意的是,题目给出的定义并不很明确,需要考虑数字的位数。
-----------------------------------------------------------------------------------------------------------
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while(scan.hasNext()){ String n = scan.next(); if(isShouXingShu(n)){ System.out.println("Yes!"); }else{ System.out.println("No!"); } } } public static boolean isShouXingShu(String num){ if(num == null || num.isEmpty()){ return false; } long n = (long)Math.pow(Double.parseDouble(num),2); String m = String.valueOf(n); if(m.length() > 1 && m.length() < 3){ m = String.valueOf(n).substring(m.length()-1); }else if(m.length() >= 3){ m = String.valueOf(n).substring(m.length()-2); } if(num.equals(m)){ return true; } return false; } }
相关文章推荐
- 算法题练习系列之(二十一): 人口普查
- 算法题练习系列之(九):部分A+B
- 算法题练习系列之(十):A除以B
- 算法题练习系列之(十九): 程序运行时间
- 算法题练习系列之(二十八): 插入与归并
- 算法题练习系列之(二十三): 完美数列
- 算法题练习系列之(二十九): 跟奥巴马一起编程
- 算法题练习系列之(三十): 在霍格沃茨找零钱
- 算法题练习系列之(四十五):分数运算
- 算法题练习系列之(二十): 打印沙漏
- 算法题练习系列之(二):矩阵最大值
- 算法题练习系列之(四十三):骨牌铺方格
- 算法题练习系列之(四十一):童年生活二三事
- 算法题练习系列之(十四): 个位数统计
- 算法题练习系列之(十六): 组个最小数
- 算法题练习系列之(十八): 反转链表
- 算法题练习系列之(五):数字分类
- 算法题练习系列之(三十八): 斐波那契凤尾
- 算法题练习系列之(四十六):分解因数
- 算法题练习系列之(三十三): 有几个PAT