lintcode初次尝试



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天左右。期间要投递一下简历。 开学应该会比较忙 期待一切会变得好一点

猜你喜欢

转载自blog.csdn.net/idiot2B/article/details/87869538