题目:输出所有的水仙花数,所谓的水仙花数是指一个3位数,其各个位上数字立方和等于其本身。例如:153=1*1*1+3*3*3+5*5*5
import java.util.Scanner; class ForTest { ?? ?public static void main(String[] args) { ?? ??? ?Scanner scan = new Scanner(System.in); ?? ??? ?System.out.println("请输入第一个正整数:"); ?? ??? ?int m = scan.nextInt(); ?? ??? ?System.out.println("请输入第二个正整数:"); ?? ??? ?int n = scan.nextInt(); ?? ??? ?int min = (m<n)? m : n; ?? ??? ?for(int i = min;i>=1;i--){ ?? ??? ??? ?if(m % i==0 && n%i==0){ ?? ??? ??? ??? ?System.out.println("最大公约数是:" +i); ?? ??? ??? ??? ?break; ?? ??? ??? ?} ?? ??? ?} ?? ??? ?int max = (m>n)?m:n; ?? ??? ?for(int a = max;a<m*n;a++){ ?? ??? ??? ?if(a%m==0&&a%n==0){ ?? ??? ??? ??? ?System.out.println("最大公倍数是:"+a); ?? ??? ??? ??? ?break; ?? ??? ??? ?} ?? ??? ?}//在求公倍数时,我把求公倍数的这段语句放在了上一段语句的for循环中,导致输入的数有时候会没有公倍数或者是同时输出几个公倍数,所以以后要弄明白每个大括号所管辖的区域,这种粗心大意是不能再出现的
?? ?} } //前面知识点严重遗忘,一方面是因为以前三天打鱼两天晒网引起打,还有一方面是因为本来就是初学遗忘很正常,所以一定要经常,经常,经常练习。少自己在脑海中敲代码,没有什么用,一切靠手,这才是真正的有手就行,有手才行
下面是正确运行时的效果图
|