【问题标题】:Array number that are multiples of 33 的倍数的数组编号
【发布时间】:2017-06-04 19:08:24
【问题描述】:

我需要得到所有 3 的倍数的数字。 有人可以帮我写吗?这是我目前所拥有的:

int[] myList = { 1, 2, 3, 4, 5, 6, 7, 8, 9, };


public class Main {
public static void main(String[] args) {
    int[] myList = { 1, 2, 3, 4, 5, 6, 7, 8, 9, };
    int share = myList[0];
    for (int i / 3; i / myList.length;) {

        }
    }
    System.out.println(i / 3 );

}

}

【问题讨论】:

  • 我尝试过类似的方法,但我不知道如何写下来:/
  • “3 的份额”是什么意思?你的意思是3的倍数?另外,你的主要问题是什么?这是相当广泛的。我发现您的代码存在许多潜在问题,因此不清楚究竟是什么导致了问题。
  • 我需要从该数组中获取除以三的所有数字,例如 9/3=3;6/3=2
  • System.out.println(Arrays.toString(IntStream.of(myList).filter(x -> x % 3 == 0).toArray()));

标签: java


【解决方案1】:

好的,我认为您想要做的是有一个包含一组数字的数组,然后您希望您的程序获取这些数字并将它们保存到一个数组中。然后在循环完成后打印该数组。

请记住,对于这类问题,您知道数组的大小,但不知道会得到多少答案。所以我推荐你使用 List。它们的大小没有设置,它们可以根据您返回的答案数量而增长。

旁注:确保使用正确的导入

import java.util.ArrayList;
import java.util.List;



public static void main(String[] args) {

    int [] listOfNumbers = {1,2,3,4,5,6,7,8,9}; // The list of numbers that you have
    List<Integer> divisableBy3 = new ArrayList<Integer>();
    //The loop go through the array list and check the numbers.

    for (int i = 1; i < listOfNumbers.length; i++) { // You already know that 0 is not divisable by 3.
        int temp = listOfNumbers[i];

        if (temp %3 == 0) { //Checking that you number is divisible by 3
            divisableBy3.add(temp);
        }
    }

    //For each loop to print out the require information.
    for (int num : divisableBy3) {
        System.out.println("Number divisable by 3 : "+num);
    }
}

请记住,检查一个数是否可​​被您整除不是使用“/”符号,而是使用模数运算符“%”。

       temp %3 == 0 

【讨论】:

    【解决方案2】:

    在尝试编写自己的程序代码之前,您应该阅读 java 教程和文档。

    你的代码充满了语法错误和逻辑错误。

    我不建议您在了解核心编程概念之前开始编程 java:

    声明变量,if else 条件,循环(while, for),读取输入,打印输出,逻辑运算符(&amp;&amp; , ||, !),算术运算符(+, -, *, /, %),关系运算符(==, !=, &gt;, &lt;),运算符优先级......

    这些概念几乎是所有编程语言的基础

    编程是一种逻辑思维,而不仅仅是打字

    查看这些参考资料来学习 java:

    为了得到数组列表中3的倍数的数字

    您可以使用% mod 运算符来检查一个数字是否可以被 3 整除:

     int[] myList = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    for(int i = 0; i < myList.length; i++){
         if( myList[i] % 3 == 0){
           System.out.println(myList[i]);
         }
    }
    

    输出:

    3
    6
    9
    BUILD SUCCESSFUL (total time: 0 seconds)
    

    【讨论】:

      【解决方案3】:

      :) 你绝对是新手。

      首先,您需要披露 share 变量可能用于什么。

      接下来你需要学习如何正确iterate through your Integer Array

      您还需要了解Modulus Operator (%) 以及如何使用IF statement within a FOR loop

      您还需要学习how to display a Integer Array Element within the system Console。这通常会在您的 FOR 循环中完成。

      或者如果你幸运的话....一些小丑会为你做功课。

      【讨论】:

        【解决方案4】:

        你可以这样写:

        import java.io.*; 
        public class Main {
            public static void main(String[] args) {
            int[] myList = { 1, 2, 3, 4, 5, 6, 7, 8, 9, };
            int share = myList[0];
            for (int i = 0; i < myList.length; i++) {
                    if (myList[i] % 3 == 0) {
                        System.out.println(myList[i]); // numbers that are divisible by three
                    }
                    if (isPrime(myList[i]) == 1) {
                       System.out.println(myList[i]); //print prime no.s
                    }
                }
            }
            static int isPrime(int n) {
              if (n < 2) return 0;
        
              for (int i = 2; i*i <= n; i++) {
                if (n%i == 0) {
                   return 0;
                }
              }
              return 1;
            }
        }
        

        【讨论】:

        • 谢谢你的工作:) 如果我有从 10 到 100 的数组并且需要获取所有素数,可以被 1 整除并被它自己整除?
        • 你也可以写一个函数来检查一个数是否是素数。
        • 我这样写是为了得到素数:public class Main { public static void main(String[] args) { for (int i = 10; i
        • 但 ot 不起作用:/ 它还计算 2 的倍数:/
        • 看latheelhafy给出的答案
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多