有关友方号码的节目

时间:2017-03-28 14:59:21

标签: java

我正在为编程课程的介绍做一些额外的练习,我无法弄清楚我在下面的问题上做错了什么:

  

(友好号码)如果最左边的话,整数被认为是友好的   数字可以被1整除,最左边的两个数字可被2整除,   并且最左边的三个数字可以被3整除,依此类推。该   n位本身可以被n整除。例如,数字42325是   友好因为4可被1整除,42可被2整除,423是   可被3整除,4232可被4整除,42325可被5整除。

使用名称编写一般方法(带或不带递归) isFriendly,确定该号码是否“友好” 。写一个测试方法的主要方法是友好的。

我的计划如下: import java.util.Scanner;

public class Question4 {

   public static void main(String args[]){

       Scanner in = new Scanner(System.in);
       System.out.print("Enter a number: ");
       String input = in.nextLine();

  }
  public static String isFriendly(String input){
        int n = input.length();
        int number = Integer.parseInt(input);
        String output = "";
        for (int i = 0; i<=n; i++){
            if (((n/10*i)%i) != 0 ){

                output = "Friendly";
            }else{

                output = "Not friendly";
            }
            return output;
        }
     }
  }

给出的错误是:&#34;结果必须返回String&#34;类型的结果。 我该怎么做才能解决这个问题,我能以更有效的方式编写这个程序吗? 非常感谢您考虑这个问题!

2 个答案:

答案 0 :(得分:1)

试试这个:

public static String isFriendly(String input) {
    if (input == null || input.length() == 0) return "Not friendly";

    int n = input.length();
    int number = Integer.parseInt(input);

    for (int i = 0; i<=n; i++) {
        if (((n/10*i)%i) == 0 ) {
            return "Not friendly";
        }
    }
    return "Friendly";
}

答案 1 :(得分:0)

请在这里尝试我的代码我使用StringBuilder类来获取每个实际的int然后将其转换为字符串然后在每次循环迭代时将其转换为int

public static void main(String args[])
    {
    Scanner in = new Scanner(System.in);
    System.out.print("Enter a number: ");
    String input = in.nextLine();
    System.out.println(isFriendly(input));
    }
    public static String isFriendly(String input)
    {
        int n = input.length();
        String output = "";
        StringBuilder sb = new StringBuilder("");
        int myIntOutput=0;
        for (int i = 0; i<n; ++i)
        {
            sb.append(input.charAt(i));

            if (Integer.parseInt(sb.toString())%(i+1)==0)
            {
               myIntOutput++;

            }


        }
        if(myIntOutput==n)
        {
            output="Friendly";
            return output;
        }
        else
        {
            output="Not Friendly";
            return output;
        }
    }

如果这有助于您考虑接受它作为答案