【问题标题】:Listing multiples of user-inputted numbers列出用户输入数字的倍数
【发布时间】:2014-08-02 08:56:19
【问题描述】:

任务是“编写一个程序,为用户输入的整数显示用户指定的倍数。”

我想我不需要一个完全直接的答案(尽管我确实想知道要使用的方法/公式),因为我想将其用作学习经验,以便自己完成任务并从中学习。我真的很想知道这个过程和使用哪些方法,以及找到一个公式。 :||

我真的不确定如何编写代码来显示用户输入的整数的用户输入数字。最难的部分似乎是编写循环公式。不知道从哪里开始。

到目前为止,我有:

import java.util.Scanner;

public class MultipleLooping
{
   public static void main(String[] args)
   {   
      Scanner keyboard = new Scanner(System.in); 

\\just stuff to base my code off of

      int integer;
      int numberMultiples;

      System.out.println("Enter an integer: ");

      integer = keyboard.nextInt();

      System.out.println("How many multiples of " + integer + " would you like to know?");
         numberMultiples = keyboard.nextInt();

      System.out.println("Listing the first " + numberMultiples + " multiples of " + integer + ": ");

\\pretty much everything from here on out.. I'm not sure what to really do.
      int n = integer;
      int result = (integer * (numberMultiples));
      while (result > 0){}

      System.out.print(result);
   }
} \\at the moment this code doesn't seem to have any running errors

我真的不确定如何编写代码来显示用户输入的整数的用户输入数字。最难的部分似乎是编写循环公式。不知道从哪里开始。

新问题 我也需要循环我的程序。 (通过首先向用户提问。)地雷不工作,因为它只是继续循环仅整数循环并且不允许我输入是/否。 导入 java.util.Scanner;

public class MultipleLoops
{
    public static void main(String[] args)
    {

       Scanner keyboard = new Scanner(System.in);
       int integer, numberMultiples;
       String repeat = "yes";

       while (repeat != "no")
       {
         System.out.println("Enter an integer: ");
         integer = keyboard.nextInt();

         System.out.println("How many multiples of " + integer + " would you like to know?");
         numberMultiples = keyboard.nextInt();

         System.out.println("Listing the first " + numberMultiples + " multiples of " + integer + ": ");

         for (int i=1; i<=numberMultiples; i++){
         System.out.println(integer + " * " + i + "   =  " + i*integer );
         }


         System.out.println("Would you like to do this again? Enter yes or no: ");
         repeat = keyboard.nextLine();


   }  

} 

}

【问题讨论】:

  • 请举例说明所需的输出请求
  • 假设用户输入了 3,然后输入了 7。所以您必须显示 7 个数字 - 第一个倍数,然后是第二个倍数,依此类推。
  • @racraman 谢谢你的解释:)

标签: java loops numbers


【解决方案1】:

好的,所以你需要先了解问题才能知道如何解决它

x = First input
n = Second input 

你需要计算 x 的 n 倍 x = 3 和 n = 10 的示例 要计算 3 的 10 倍数,我们需要这样做:

  1st multiple = x*1
  2nd multiple = x*2
  3rd multiple = x*3
  ...
  n   multiple = x*n

你可以注意到这些操作可以被一个for循环替换(注意每一行的第一个和最后一个字符,它可以是你循环的索引)

回到java :)

for (int i=1; i<=numberMultiples; i++){
    System.out.println("Listing multiple N# " + i + "   =  "+ i*integer );
 }

用以下代码替换您的代码并尝试此代码:

import java.util.Scanner;

public class MultipleLooping{
    public static void main(String[] args){
        Scanner keyboard = new Scanner(System.in);
        int integer,numberMultiples;

        System.out.println("Enter an integer: ");
        integer = keyboard.nextInt();

        System.out.println("How many multiples of " + integer + " would you like to know?");
        numberMultiples = keyboard.nextInt();

        for (int i=1; i<=numberMultiples; i++){
            System.out.println("Listing multiple N# " + i + "   =  "+ i*integer );
        }
    }
}


Enter an integer: 
3
How many multiples of 3 would you like to know?
7
Listing multiple N# 1   =  3
Listing multiple N# 2   =  6
Listing multiple N# 3   =  9
Listing multiple N# 4   =  12
Listing multiple N# 5   =  15
Listing multiple N# 6   =  18
Listing multiple N# 7   =  21

【讨论】:

  • 非常感谢! :D 我还不能投票,所以我现在就发表这个评论。而且我也很了解它,所以这太棒了。我唯一的问题是,“int integer, numberMultiples”和“int integer”&“int numberMultiples”(在单独的行上)之间的实际区别是什么?你什么时候会使用这样的编码?我知道我昨天做错了。
  • 不客气,你会接受我的回答:),实际上不同的是第一个语句同时定义了两个变量,另一种方式是定义一个变量a时间。当你有许多来自同一类型的变量时,你使用这样的编码(如果你想定义 5 个 int,写 'int var1 var2 var3 var5 var5;' 比写 'int var1; int var2;...;int var5; '),继续编码,祝你好运:)
  • 我有一个新问题。 :( 我更新了我的原始主题帖子以包含它(它在我的第一个代码之后)。这是关于向用户询问是否要循环程序(并从头开始)的部分。
  • 没问题 Tony,首先在比较两个字符串时,在 java 中使用方法 compareTo,(在循环中替换为 'repeat.compareTo("no") != 0 '),并阅读用户输入(代码中的最后一行将其替换为'repeat = keyboard.next();'),我建议你看看Scannerand String类,祝你好运
  • 好的!显然,我需要做的就是删除keyboard.nextLine 中的“Line”以使其正常工作。我一定会看看那些页面。再次感谢,感谢您的帮助!
【解决方案2】:

你想要这样吗?下面是代码

package com.ge.cbm;


import java.util.Scanner;

public class MultipleLooping
{
   public static void main(String[] args)
   {
      Scanner keyboard = new Scanner(System.in);

//just stuff to base my code off of

      int integer;
      int firstEntered;
      int numberMultiples;

      System.out.println("Enter an integer: ");

      integer = keyboard.nextInt();
      firstEntered = integer;
      System.out.println("How many multiples of " + integer + " would you like to know?");
         numberMultiples = keyboard.nextInt();

      System.out.println("Listing the first " + numberMultiples + " multiples of " + integer + ": ");

//pretty much everything from here on out.. I'm not sure what to really do.

     for (int i=0;i<numberMultiples;i++){
         integer=integer*firstEntered;
         System.out.println(integer);
     }
   }
}

输出:

Enter an integer: 
3
How many multiples of 3 would you like to know?
7
Listing the first 7 multiples of 3: 
9
27
81
243
729
2187
6561

【讨论】:

【解决方案3】:

这应该可以工作

while(repeat.equals("yes"))
{
     System.out.println("Enter an integer: ");
     integer = keyboard.nextInt();

     System.out.println("How many multiples of " + integer + " would you like to know?");
     numberMultiples = keyboard.nextInt();

     System.out.println("Listing the first " + numberMultiples + " multiples of " + integer + ": ");

     for (int i=1; i<=numberMultiples; i++)
     {
        System.out.println(integer + " * " + i + "   =  " + i*integer );
     }


     System.out.println("Would you like to do this again? Enter yes or no: ");
     repeat = keyboard.nextLine();
     repeat = keyboard.nextLine();
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2011-06-07
    相关资源
    最近更新 更多