当前位置: 代码迷 >> Java相关 >> 高手解一下难题!
  详细解决方案

高手解一下难题!

热度:233   发布时间:2010-03-02 22:38:25.0
高手解一下难题!
直接有软件就更好感谢了,输入十个数,输出五个数,这五个数是第一个与第十个之和,第二个与第九个之和,第三个与第八个之和,第四个与第七个之和,第五个与第六个之和。后来每输入一个数,再输出五个数,代表最后一个数,原先的第一个数就不要了,第二个数变成了第一个数,…………第三个变成第二个,原先的最后一个成了第九个,输出的五个数,依然是这五个数是第一个与第十个之和,第二个与第九个之和,第三个与第八个之和,第四个与第七个之和,第五个与第六个之和
搜索更多相关的解决方案: 难题  

----------------解决方案--------------------------------------------------------
程序代码:
package test;
import java.util.Scanner;
class InputOutValue{
    Scanner in=new Scanner(System.in);
    int nums[]=new int[10];
    int temp;
    public void InputAll()
    {   
        System.out.print("请输入10个数字: ");
        for(int i=0;i<nums.length;i++){           
            nums[i]=in.nextInt();
        }
        System.out.println("所有的数字: ");
        for(int i=0;i<nums.length;i++){
            System.out.print(nums[i]+"  ");
        }      
    }
    public void InputOne()
    {   
        System.out.print("请输入1个数字: ");   
        temp=in.nextInt();
        for(int i=0;i<nums.length;i++)
        {
            if((i+1)<nums.length){
            nums[i]=nums[i+1];
            }else{
                break;
            }
        }
        nums[9]=temp;
    }
    public void Out(){      
        System.out.println("\n第一个和第十个之和是: "+(nums[0]+nums[9]));
        System.out.println("\n第二个和第九个之和是: "+(nums[1]+nums[8]));
        System.out.println("\n第三个和第八个之和是: "+(nums[2]+nums[7]));
        System.out.println("\n第四个和第七个之和是: "+(nums[3]+nums[6]));
        System.out.println("\n第五个和第六个之和是: "+(nums[4]+nums[5]));
    }
}
public class Sum {
    public static void main(String[] args) {
        InputOutValue inputOutValue=new InputOutValue();
        inputOutValue.InputAll();
        inputOutValue.Out();
        inputOutValue.InputOne();
        inputOutValue.Out();
        inputOutValue.InputOne();
        inputOutValue.Out();
    }
}

----------------解决方案--------------------------------------------------------
有问题请跟帖。
----------------解决方案--------------------------------------------------------
楼主说的题好像正好是队列
可以用下面的代码,正好最近在学collection
程序代码:
import java.util.Scanner;
import java.util.Queue;
import java.util.LinkedList;
import java.util.Collection;
import java.util.ListIterator;

public class JavaTest {
   
    public LinkedList getQueue()
    {
        System.out.println("请输入初始数据");
        int i=0;
        LinkedList<Double> q=new LinkedList<Double>();
        Scanner s=new Scanner(System.in);
        while(i<10)
        {
           
            q.offer(s.nextDouble());
            i++;
        }
        return q;
    }
   
    public LinkedList changeQueue(LinkedList q,double d)
    {
      
        LinkedList<Double> queue=new LinkedList<Double>();
        queue=q;
        queue.poll();
        queue.offer(d);
        return queue;

      
    }
   
    public double[] getResurlt(LinkedList<Double> q)
    {
        int i=0,j=9;
        LinkedList<Double> queue=new LinkedList<Double>();
        queue=q;
        double[] d=new double[5];
        while(i<5)
        {
            d[i]=queue.get(i)+queue.get(j);
            i++;
            j--;
        }
      
        return d;
    }
   
    public void printQueue(LinkedList<Double> q)
    {
        double[] d=new double[5];
        JavaTest test=new JavaTest();
        System.out.println("现队列是:"+q);
        d=test.getResurlt(q);
        System.out.println("计算结果是:");
        for(double i:d)
        {
            System.out.print(i+",");
        }
        System.out.println();
        System.out.println("*********************");
      
    }
   
    public static void main(String[] args )
    {
      
        JavaTest test=new JavaTest();
        LinkedList<Double> q=new LinkedList<Double>();
        q=test.getQueue();
        test.printQueue(q);
        System.out.println("*********************");
      
        System.out.println("是否继续运算,如果继续运算请输入0");
        Scanner s1=new Scanner(System.in);
        int sr=s1.nextInt();
        while(sr ==0)
        {
        Scanner s=new Scanner(System.in);
        System.out.println("请输入下一个数");
        double num=s.nextDouble();
        q=test.changeQueue(q, num);
        test.printQueue(q);
      
        System.out.println("是否继续运算,如果继续运算请输入0");
        sr=s1.nextInt();
        }
      
      
           
    }

}

还有我想用符号判断是否结束运算,如输入#表示结束运算
为什么不能用scanner.next()!="#"判断?
----------------解决方案--------------------------------------------------------
程序代码:
String temp=s1.next();
        if("#".equals(temp))
        {
            break;
        }
测试过可以.
----------------解决方案--------------------------------------------------------
  相关解决方案