1

我的代码的目的是确定数字3出现在一系列数字之间的次数,下限和上限由用户确定。

到目前为止,我可以3使用模数检查数字是否在十位。但是我无法确定 a 是否3存在于数百、千分之一等中。我知道我需要使用嵌套循环,但我不知道如何对其进行编码。

到目前为止,这是我的代码。

public class JavaThree {
    public static void main (String [] args) {
        int count = 0;
        int num;

        System.out.print("Enter lower end: ");
        int lowerEnd = IO.readInt();

        System.out.print("Enter upper end: ");
        int upperEnd = IO.readInt();

        if (lowerEnd > upperEnd) {
            IO.reportBadInput();
            return;
        } else {
            for(num = lowerEnd; num <= upperEnd; num++) {
                if(num % 10 == 3) {
                    count = count + 1;
                } else {
                    count = count;
                }
            }
        }

        IO.outputIntAnswer(count);
    }
}
4

2 回答 2

1

这是适合您的任务的 for 循环:

    for(num = lowerEnd; num <= upperEnd; num++)
    {
        int nNum = num;
        while (nNum > 0)
        {
            if( (nNum % 10) == 3)
                count = count + 1;
            nNum = nNum / 10;
        }
    }
于 2013-10-15T01:45:17.527 回答
0

另一个解决方案,虽然不如@Ilya Bursov提出的解决方案那么有效,但是将数字转换为字符串并计算 char 的出现次数'3'

int threeCount = 0;
for (int num = lowerEnd; num < upperEnd; num++) { 
    String strNumber = String.valueOf(num);
    for (int i = 0; i < strNumber.length(); i++) {
        if (strNumber.charAt(i) == '3') { 
            threeCount++;
        }
    }
}
于 2013-10-15T02:06:00.920 回答