【问题标题】:How to check if a number contains a certain digit?如何检查一个数字是否包含某个数字?
【发布时间】:2017-02-02 16:12:47
【问题描述】:

我需要编写一个名为hasEight() 的布尔方法,它接受int 作为输入,如果数字包含数字8(例如18、808)则返回true。

我不想使用“字符串转换方法”。

我试过下面的代码,但只检查最后一个数字。

import java.util.Scanner;

public class Verificare {

    public static boolean hasEight(int numarVerificat) {
        int rest = numarVerificat % 10;
        return rest == 8;
    } 

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.print("Introduceti numarul pentru verificare: ");
        int numar = keyboard.nextInt();
        Verificare.hasEight(numar);
        System.out.println("Afirmatia este: " + Verificare.hasEight(numar));
    
        keyboard.close();
    }
}

【问题讨论】:

  • 这是作业吗?如果是这样,您可能想要这样标记它,向我们展示您迄今为止所做的尝试,并解释您遇到的问题。
  • 808 的号码是多少?小数对吗?所以它是8x10^2 + 0x10^1 + 8x10^0。所以;鉴于此,您将如何单独访问每个数字?
  • 看起来更像是一个智商难题,而不是相关的家庭作业。什么时候需要知道如何做到这一点?
  • @BoristheSpider:但是0x10^1 == 17.

标签: java


【解决方案1】:

如果您不想使用字符串转换方法,那么我认为可以使用此方法。

public bool hasEight(int number)
{
      while(number > 0)
      {
          if(number % 10 == 8)
              return true;

          number=number/10;
      }
      return false; 
} 

【讨论】:

  • 感谢您的帮助。我采纳了你的建议 Uday。
【解决方案2】:

使用下面的函数。

boolean hasEight(int num) {
    int rem;
    while (num > 0) {
        rem = num % 10;
        if (rem == 8)
            return true;
        num = num / 10;
    }
    return false;
}

在循环的每次迭代中,检索数字的最后一位(除以 10 时的余数)。如果为 8,则返回 true。否则,数字除以 10(整数除法,以便删除最后一位)并开始另一次迭代。当所有数字都被检查(8 或不)时,数字变为 0 并停止循环。

【讨论】:

  • 感谢您的帮助。我用了你的建议@Krisha Teja
【解决方案3】:
    public static boolean hasEight(int numarVerificat)
    {
        while(numarVerificat > 0)
          {
              if(numarVerificat % 10 == 8)
                  break;
              numarVerificat=numarVerificat/10;
          }
          return (numarVerificat>0); 
    } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 2021-01-03
    • 2018-08-24
    相关资源
    最近更新 更多