水仙花數(shù)是指一個(gè)n位數(shù)的各位數(shù)字的n次方之和等于它本身的數(shù)。比如說3位數(shù)153就是一個(gè)水仙花數(shù),因?yàn)?^3+5^3+3^3=153。
使用java計(jì)算一定位數(shù)內(nèi)的水仙花數(shù)并求他們的和,可以按照以下的步驟進(jìn)行:
//定義變量 int sum = 0; int count = 0; int n = 3; //n表示位數(shù) //循環(huán)遍歷所有的n位數(shù) for(int i = 1; i< Math.pow(10, n); i++){ int num = i; int temp = 0; //計(jì)算n位數(shù)的各位數(shù)字的n次方之和 while(num >0){ temp += (int)Math.pow(num%10, n); num /= 10; } //判斷是否是水仙花數(shù) if(temp == i){ sum += i; count++; } } //打印輸出結(jié)果 System.out.println(n + "位數(shù)內(nèi)的水仙花數(shù)個(gè)數(shù)為:" + count); System.out.println(n + "位數(shù)內(nèi)的水仙花數(shù)和為:" + sum);
在上述代碼中,首先定義了一個(gè)sum變量用于累加水仙花數(shù)的和,一個(gè)count變量用于計(jì)算水仙花數(shù)的個(gè)數(shù)。接著使用for循環(huán)遍歷所有的n位數(shù),并且使用while循環(huán)計(jì)算每一個(gè)數(shù)的各個(gè)位數(shù)的n次方之和。之后判斷是否是水仙花數(shù),如果是的話,就將它的值加入到sum變量中,并且把count變量加1。最后打印輸出結(jié)果。