A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 常万 中级黑马   /  2012-4-2 10:40  /  1838 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Addition
{
  static void additionProblem(int topNumber, int bottomNumber) throws Exception
  {
    BufferedReader cin;
    cin = new BufferedReader(new InputStreamReader(System.in));
  
    int userAnswer;
    System.out.print("\n\n\n      " + topNumber + " + " + bottomNumber + " = ");
    userAnswer = new Double(cin.readLine()).intValue();
  
    int theAnswer = topNumber + bottomNumber;
    if (theAnswer == userAnswer)
      System.out.println("      Correct!");
    else
      System.out.println("      Very good, but a better answer is " + theAnswer);
  } // additionProblem
  
  public static void main(String[] argv) throws Exception
  {
    int i;
    i = 0;
    while ( i < 5)
    {
      additionProblem((int)(5 * Math.random()), (int)(5 * Math.random()));  
      i = i + 1;
    } // while
  } // main
} // public class

2 个回复

倒序浏览
建立两个数组,一个用于保存topNumber ,另外一个用于保存bottomNumber ,当生成随机数的时候在第一个数组中找该随机数是否已经生成过,然后记住他的下标在第二个数组中找相同下标的值是否和第二个随机数相同,如果都相同那就重复不输出,这样就可以避免题目重复。
回复 使用道具 举报

import java.io.*;
public class Addition
{
  static void additionProblem(int topNumber, int bottomNumber) throws Exception
  {
    BufferedReader cin;
    cin = new BufferedReader(new InputStreamReader(System.in));
   
     int userAnswer;
    System.out.print("\n" + topNumber + " + " + bottomNumber + " = ");
    userAnswer = new Double(cin.readLine()).intValue();
     int theAnswer = topNumber + bottomNumber;
    if (theAnswer == userAnswer)
      System.out.println("      Correct!");
    else
      System.out.println("      Very good, but a better answer is " + theAnswer);
  } // additionProblem

  public static void main(String[] argv) throws Exception
  {
    int i;
     i = 0;
     int[] topNumber  = new int[5];
     int[] bottomNumber = new int[5];
     
     while ( i < 5)
     {
             int topN ,bottomN;
             topN=(int)(5 * Math.random());
             bottomN=(int)(5 * Math.random());
             
             //判断重复
             if(!panduan(topNumber,bottomNumber,topN,bottomN))
             {
               topNumber[i]=topN;
               bottomNumber[i]=bottomN;         

           additionProblem(topN, bottomN);         
           i = i + 1;
             }
     } // while
   } // main
  
   static boolean panduan(int[] topNumber,int[] bottomNumber,int topN,int bottomN)
   {
           boolean result=false;
           //判断重复的代码
           for (int i = 0; i < topNumber.length; i++)
           {
           if(topNumber[i]==topN && bottomNumber[i]==bottomN)
           {
                   result=true;//重复则跳出
                   break;
           }      
           }
          
           return result;
   }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马