作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一种方法可以判断一个数字是否是素数。它在我的测试类中工作,但是当我使用 System.outprintf 时,它失败了。与repDigit方法相同。
如有任何帮助,我们将不胜感激
求质数的方法:
/**
* Checks whether the number is a prime number.
*
* @param number Any number
* @return true if the number is prime, otherwise false
*/
public static boolean isPrime(int number) {
boolean isPrime = true;
if (number < 2) {
isPrime = false;
} else {
// Start counting from two to begin with even numbers
for (int i = 2; i < number/2; ++i) {
if (number % i == 0) {
isPrime = false;
}
}
}
return isPrime;
}
查找repDigit的方法:
/**
* This method checks if numbers, after each other, are the same. We take
* modulus of the number, in order to get the last digit, as long as the
* number is above 0. The number is divided by 10, to end up with all
* remaining numbers. Then it checks, if the last digit + the remaining are
* the same
*
* @param number
* @return
*/
public static boolean isRepDigit(int number) {
int repDigit = number % 10;
boolean toReturn = true;
if (number < 10) {
toReturn = false;
} else {
while (number > 0) {
int digit = number % 10;
number = number / 10;
if (repDigit != digit) {
toReturn = false;
}
}
}
return toReturn;
}
主要方法:
public static void main(String[] args) {
final int START = 5;
final int END = 100;
final int SPACE = digitCount(END);
for (int i = START; i < END; i++) {
System.out.printf("%" + SPACE + "d is a repdigit &n", isRepDigit(i));
System.out.printf("%" + SPACE + "d is a prime &n", isPrime(i));
}
}
错误消息:
Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.Boolean
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4302)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2793)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2747)
at java.util.Formatter.format(Formatter.java:2520)
at java.io.PrintStream.format(PrintStream.java:970)
at java.io.PrintStream.printf(PrintStream.java:871)
at Grp17_ueb01.main(Grp17_ueb01.java:164)
C:\Users\rasmu\Documents\NetBeansProjects\ueb01\nbproject\build-impl.xml:1040: The following error occurred while executing this line:
C:\Users\rasmu\Documents\NetBeansProjects\ueb01\nbproject\build-impl.xml:805: Java returned: 1
BUILD FAILED (total time: 1 second)
最佳答案
我认为您误解了printf
第二个参数的含义。这里字符串中的 d 应该替换为小数,作为第二个参数给出。并且 boolean 值 isRepDigit(i)
无法转换为十进制。
可以找到 printf 方法文档 here .
格式字符串语法解释here .
我认为你想要的是:
if (isRepDigit(i)) {
System.out.printf("%" + SPACE + "d is a repdigit \n", i);
}
if (isPrime(i)) {
System.out.printf("%" + SPACE + "d is a prime \n", i);
}
关于java - 查找 primeNumber 和repDigit 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47311520/
我只想拥有带有标记数字的条目 1234 11983455 6526347 11 207555 777 343333987 34678 最佳答案 这个正则表达式似乎可以做到: select nr fro
我是一名优秀的程序员,十分优秀!