蓝桥杯省赛真题2015年第六届Java本科B组第02题——立方变自身

蓝桥杯省赛真题2015年第六届Java本科B组

第02题——立方变自身

观察下面的现象,某个数字的立方,按位累加仍然等于自身。
1^3 = 1
8^3 = 512 5+1+2=8
17^3 = 4913 4+9+1+3=17

请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个?

请填写该数字,不要填写任何多余的内容或说明性的文字。

思路

枚举验证,注意题没给范围,但是我们自己试一下发现范围并不大,我们可以先用99,999试一下(int最大为2147483647,如果使用9999会超出int范围),发现结果都一样的

代码

public class Question02 {
    
    

	public static void main(String[] args) {
    
    
		int count = 0;
		for (int i = 1; i <= 999; i++) {
    
    
			if (check(i)) {
    
    
				count++;
			}
		}
		System.out.println(count);
	}

	private static boolean check(int num) {
    
    
		int res = num*num*num; //求立方
		char[] cArr_res = Integer.toString(res).toCharArray(); //转为String后转为char数组
		int sum = 0; //求和
		for (int i = 0; i < cArr_res.length; i++) {
    
    
			sum = Character.getNumericValue(cArr_res[i]) + sum;
		}
		
		if (sum == num) {
    
    
			return true;
		}
		
		return false;
	}
}

结果

在这里插入图片描述
答案为: 6

猜你喜欢

转载自blog.csdn.net/qq_43594119/article/details/108941769
今日推荐