我将如何找到 3 和 5 的倍数?
我是新手,所以请不要太复杂。但是我知道基础知识。
创建一个方法会更好,但这会花费太长时间
IE
如果 x == 3,5,6 等。
查看Java的模数运算符。
if (num % 5 == 0 || num % 3 == 0) // you have a multiple.
这只会告诉你num
是 3 还是 5 的倍数……我想你可能会弄清楚如何使它更通用并适合任何数字组合。或者只是看看 duffymo 的回答。
package math;
/**
* MathUtils description here
* @author Michael
* @link
* @since 2/21/13 6:59 PM
*/
public class MathUtils {
public static void main(String[] args) {
int [] values = {
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30
};
int n = 3;
int p = 5;
for (int i = 0; i < values.length; ++i) {
System.out.println(String.format("value %d multiple of %d and %d? %s", values[i], n, p, isEvenMultiple(values[i], n, p)));
}
}
public static boolean isEvenMultiple(int m, int n, int p) {
return ((m%n == 0) && (m%p == 0));
}
}
该程序只打印非负倍数,也只打印可以用 32 位 2s 补码表示的倍数。但其中,它应该按顺序打印它们,并且不重复。
int m3 = 0 ;
int m5 = 0 ;
while( m3 >= 0 || m5 >= 0 ) {
if( m5 < 0 || m3 < m5 ) {
System.out.println(m3) ;
m3 += 3 ; }
else if( m3 < 0 || m5 < m3 ) {
System.out.println(m5) ;
m5 += 5 ; }
else {
System.out.println(m3) ;
m3 += 3 ; m5 += 5 ; } }