-3

我将如何找到 3 和 5 的倍数?

我是新手,所以请不要太复杂。但是我知道基础知识。

创建一个方法会更好,但这会花费太长时间

IE

如果 x == 3,5,6 等。

4

4 回答 4

3

查看Java的模数运算符。

于 2013-02-21T23:58:42.947 回答
1
if (num % 5 == 0 || num % 3 == 0) // you have a multiple.

这只会告诉你num是 3 还是 5 的倍数……我想你可能会弄清楚如何使它更通用并适合任何数字组合。或者只是看看 duffymo 的回答。

于 2013-02-21T23:56:39.767 回答
0
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));
    }
}
于 2013-02-21T23:57:23.257 回答
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 ; }  }
于 2013-02-22T00:15:07.603 回答