「完美树java」完美树叶
今天给各位分享完美树java的知识,其中也会对完美树叶进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、如何用JAVA检测一个数字的每一位的和,是否是完美数
- 2、java中如何判断一个数是否完全数!!
- 3、Java中输出1000内的完美数,为什么和变量sum必须定义在for内才能正确输出?定义在for前就什么也不会输出
- 4、Java 求100以内的完全数 运算过程是怎样的 怎么得到6 ,28的
- 5、10000以内的完美数用Java以6=1+2+3的形式显示怎么编写啊
如何用JAVA检测一个数字的每一位的和,是否是完美数
Java源代码:
import java.util.Scanner;
public class Exam01 {
public static void main(String[] args) {
int num;
System.out.print("请输入一个正整数:");
Scanner scan = new Scanner(System.in);
num = scan.nextInt();
if(perfectNumber(num) == true){
System.out.printf("%d 是一个完美数", num);
}
else{
System.out.printf("%d 不是一个完美数", num);
}
}
/**
* 判断num是否是完美数(各位数字之和恰好是完全数)
* @param num 待判断数
* @return true-完美数,false-非完美数
*/
public static boolean perfectNumber(int num){
int sum = 0;
//求num的各位数字之和
while(num 0){
sum += num % 10;
num /= 10;
}
return completeNumber(sum);
}
/**
* 判断num是否是完全数(所有小于自身的因子之和恰好等于其自身的正整数)
* @param num 待判断数
* @return true-完全数,false-非完全数
*/
public static boolean completeNumber(int num){
if(num = 1){
return false;
}
int sum = 1;
//求小于num的所有因子之和
for(int i=2; inum; i++){
if(num % i == 0){
sum += i;
}
}
return (sum == num ? true : false);
}
}
运行测试:
请输入一个正整数:600
600 是一个完美数
请输入一个正整数:64
64 不是一个完美数
java中如何判断一个数是否完全数!!
java中如何判断一个数是否完全数,可以分为求约数(不包括本身)、求约数之和以及比较自身和约数之和是否相等三个步骤。
第一步:求约数
public static Listint yueShu(int n){
Listint list = new ArrayListint();
for(int i=1;i=n/2;i++){
if(n%i==0){
list.add(i);
}
}
return list;
}
解析:如果该数除以循环中的变量的余数为零,那么该变量就是该数的约数。其中有个注意点,如果循环变量大于该数的一半之后就不会是该数的余数了(该数本身除外),所以循环到该数一半时便结束。
第二步:求约数之和
public static int sum(Listint list){
int total=0;
Iterator it=list.iterator();
while(it.hasNext()){
total+=it.next();
}
return total;
}
解析:利用while遍历List,将List中的值全部加起来。
第三步:比较本身与约数之和是否相等
public static boolean isPerfect(int n){
return n==sum(yueShu(n));
}
如果该数与该数的约数之和相等,则该方法返回true,否则返回false。最后根据该方法的返回值判断该数是不是完全数。
Java中输出1000内的完美数,为什么和变量sum必须定义在for内才能正确输出?定义在for前就什么也不会输出
/*
定义在for外,
第一次循环,当i = 2 时,内层循环结束时,sum的值是 1
第二次循环,当i = 3 时,内层循环结束时,sum的值是 2
第三次循环,当i = 4 时,内层循环结束时,sum的值是 5
sum的值和i的值不会相等,越往后,越不会相等,因为,i 每次增加 1,
而sum只会递增不会,所以不会被输出。
简单说,当给定一个数字 n 判断 n 是不是完美数,只需要用取 n 的公约数,与其它数字无关,
所以,定义在for里面就是为了每次循环开始的时候,把 sum 的值清空,也就是这个sum与前面的数字无关了
*/
Java 求100以内的完全数 运算过程是怎样的 怎么得到6 ,28的
public class TestFullNum {
public static void main(String[] args) {
for (int index = 1; index 100; index++) {
// 如果是完全数,则输出
if (isFullNum(index)) {
System.out.println(index);
}
}
}
/**
* 判断狮子是不是完全数br
*
* 完全数定义: 又称完美数或完备数,是一些特殊的自然数。 它所有的真因子(即除了自身以外的约数)的和(即因子函数),
* 恰好等于它本身。如果一个数恰好等于它的因子之和, 则称该数为“完全数”。
*
* @param num
* 整数
* @return boolean
*/
private static boolean isFullNum(int num) {
int tmp = 0;
for (int index = 1; index num; index++) {
if (0 == num % index) {// 如果能被整除,则是因子
tmp += index;
}
}
// 判断所有因子之和是否等于本身
return tmp == num;
}
}
10000以内的完美数用Java以6=1+2+3的形式显示怎么编写啊
/**
* 获取完美数
* @param num
*/
public static void getPerfectNumber(int num) {
if (num = 0) {
return;
}
int total = 0;
for (int i = 1; i = num; i++) {
total = 0;
for (int j = 1; j = i; j++) {
if (i % j == 0) {
if(i != j){
total += j;
}
}
}
if(total == i){
System.err.println("完美数:"+i);
}
}
}
关于完美树java和完美树叶的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-26,除非注明,否则均为
原创文章,转载请注明出处。