蓝桥与力扣刷题(蓝桥 立方变自身)
题目:观察下面的现象,某个数字的立方,按位累加仍然等于自身。
1^3 = 1
8^3 = 512 5+1+2=8
17^3 = 4913 4+9+1+3=17
...
请你计算包括 1,8,17 在内,符合这个性质的正整数一共有多少个?
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
解题思路+代码:
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = 100; // 假定1-100个数
int count = 0; // 符合性质的正整数
for (int i = 1; i <= n; i++) {
int res = (int) Math.pow(i, 3); // 计算每个数的立方
String resStr = Integer.toString(res); //将每个数的立方和转化成字符串
int sum = 0; // 计算每个数的立方和,应该在循环内重新初始化
//将每个数的立方和结果转化成字符进行遍历
for (char c : resStr.toCharArray()) {
sum += Character.getNumericValue(c); // Character.getNumericValue(c) 将字符类型的数字转化成int整数类型
}
//立方和结果的每个数相加等于原来的数 就进行计数
if (sum == i) {
count++;
}
}
System.out.println(count);
scan.close();
}
}
总结:这道题主要是将立方和的结果转化为字符串,再将字符串转化为字符(利用Character.getNumericValue()来将字符转化为数字),数字逐一相加得到的结果与原数字相匹配,相等计数,否则继续循环直到将所设定的数字遍历结束。