10堆金币,每堆10个,其中9堆每个10克,另外一堆每个9克,用一个刻度称只称一次就将9克的那堆找出来!~~~用JAVA代码给出最优方案~~~~
大家加油!

解决方案 »

  1.   

    就是回答的 有一点点bug
    都是 10g 总重 550g
      

  2.   

    import java.util.*;
    class Test
    {
    public static void main(String[] args)
    {
             Random random = new Random();
    int number=Math.abs(random.nextInt())%10;
    double sum=0.0;
            double k;
    for(int i=1;i<=10;i++)
    {
    if(i==number)
    {
    sum=sum+0.9*i;
    }
    else
    {
    sum=sum+i;
    }
    }
    k=550-sum*10;
    System.out.println((int)k);
    }
    }
      

  3.   


    public class   mianshi
    {
    public   static   void   main(String[]   args)
    {
                   int number=0;
                  do
    {
    number=Math.round((float)Math.random()*10);
    }while(number==0);
    System.out.println("随机产生的第"+number+"堆的金币每个是9克");
    int sum=0;
    for(int   i=1;i <=10;i++)
    {
    if(i==number)
    {
    sum=sum+9*i;
    }
    else
    {
    sum=sum+i*10;
    }
    }
    int k=550-sum;
           System.out.println("一次称出的第"+k+"堆的金币每个是9克");
    }
    }
      

  4.   

    if(i==number)
    这个判断是如何来的,在此之前你根本不知 number 应为何值这个算法能运行成功,是因为你将假设的随机数赋给了number. 而在算法开始的时候,根本不应该使用这个值吧
      

  5.   

    跟26楼有相同的疑问,为什么一开始就把随机数赋给number呢?
      

  6.   

    to 27:
    不给NUMBER值,怎么标志是哪堆是9个呢?你的,还不明白?
    妙哉算法。
      

  7.   

    实际情况中的number是确定的,而算法中的number是随机产生的!这算法只能说是模拟实现了吧
      

  8.   

    jian huo ,bu guo na shi bu dong ba le