import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Solution {
public List list;
Solution (){
this.list=new ArrayList<Integer>();
}
public List<Integer> getNarcissisticNumbers(int n) {
// write your code here
if(n==1){
list.add(0);
}
for (int i=(int)Math.pow(10,(n-1));i<Math.pow(10,n);i++){
String aS = String.valueOf(i);
int sum =0;
for (int k=0;k<aS.length();k++){
int temp = Integer.parseInt(String.valueOf(aS.charAt(k)));
sum+=Math.pow(temp,n);
}
if (sum==i){
list.add(i);
}
}
return list;
}
//这样的话list在哪里 没法传递 如果没有参数的话
public void print(){
for(int i = 0;i<list.size();i++){
System.out.print(list.get(i)+",");
}
if (list.size()==0){
System.out.println("There is no Narcissistic Number with 2 digits.");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Solution s = new Solution();
s.getNarcissisticNumbers(n);
s.print();
}
}
题目要求为输入要判断数据的元素位数 输出这个位数下对应的水仙花数
第一次错误的尝试
package com.imooc.collection;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Solution {
public List list;
Solution (){
this.list=new ArrayList<Integer>();
}
public List<Integer> getNarcissisticNumbers(int n) {
// write your code here
for (int i=(int)Math.pow(10,(n-1));i<Math.pow(10,n);i++){
String aS = String.valueOf(i);
System.out.println("i"+i);
char[] asC = aS.toCharArray();
int sum =0;
System.out.println("asC.length"+asC.length);
for (int k=0;k<asC.length;k++){
System.out.println("k"+k);
System.out.println("sum是"+sum);
sum+=Math.pow((int)asC[k],n);
System.out.println("此次加上"+Math.pow((int)asC[k],n));
}
System.out.println("sum"+sum+"i"+i);
if (((int)sum)==i){
list.add(i);
System.out.println("想等啦");
}
System.out.println(i);
}
for(int i = 0;i<list.size();i++){
System.out.print((int)list.get(i)+",");
}
return list;
}
//这样的话list在哪里 没法传递 如果没有参数的话
public void print(){
for(int i = 0;i<list.size();i++){
System.out.print(list.get(i)+",");
}
if (list.size()==0){
System.out.println("There is no Narcissistic Number with 2 digits.");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Solution s = new Solution();
s.getNarcissisticNumbers(n);
System.out.println("n是"+n);
s.print();
}
}
至今还没有找到错误在哪里。
计划从今天开始刷算法题 大概17天左右。期间要投递一下简历。 开学应该会比较忙 期待一切会变得好一点