接收使用者輸入的數字,判斷該數字是否為四葉玫瑰數

hongkq發表於2020-12-18

已知四葉玫瑰數是這樣一種四位數:各位上的數字的四次方之和等於本身的數(例如1634),
請編寫程式實現如下功能:接收使用者輸入的數字,判斷該數字是否為四葉玫瑰數。

【輸入格式】

輸入為一行數字,它是位數為4的正整數,該數字為需要判定是否為四葉玫瑰數的數字

【輸出格式】

輸出為一行數字,值為0或1,0表示該數字不是四葉玫瑰數,1表示該數字是四葉玫瑰數
 

【樣例輸入】
1634
【樣例輸出】
1

【完整的輸入輸出樣例】

1634
1

個人答案:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
 Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int n =Integer.parseInt(str);
int  qian=n/1000;
int bai=n/100%10;
int shi=n%100/10;
int ge=n%10;
		
int a=qian%10;
int b=bai/10%10;	
int  c=shi/100%10;
int d =ge/100;			
			int sum = a*a*a*a + b*b*b*b + c*c*c*c + d*d*d*d ;
			
if(sum==n){
	    System.out.println(sum);
    System.out.println(1);

}else{
     System.out.println(0);
		}
}
}

參考答案:

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
int q = i / 1000;
int b = i % 1000 / 100;
int s = i % 100 / 10;
int g = i % 10;
double r = Math.pow(q, 4) + Math.pow(b, 4) + Math.pow(s, 4) + Math.pow(g, 4);
if(r == i) {
System.out.println(1);
}else {
System.out.println(0);
}
}

}

 

相關文章