技术支持 英铭网站建设宣传广告怎么做吸引人
题目:观察下面的现象,某个数字的立方,按位累加仍然等于自身。
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()来将字符转化为数字),数字逐一相加得到的结果与原数字相匹配,相等计数,否则继续循环直到将所设定的数字遍历结束。