高手解一下难题!
直接有软件就更好感谢了,输入十个数,输出五个数,这五个数是第一个与第十个之和,第二个与第九个之和,第三个与第八个之和,第四个与第七个之和,第五个与第六个之和。后来每输入一个数,再输出五个数,代表最后一个数,原先的第一个数就不要了,第二个数变成了第一个数,…………第三个变成第二个,原先的最后一个成了第九个,输出的五个数,依然是这五个数是第一个与第十个之和,第二个与第九个之和,第三个与第八个之和,第四个与第七个之和,第五个与第六个之和 搜索更多相关的解决方案:
难题
----------------解决方案--------------------------------------------------------
程序代码:
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();
}
}
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();
}
}
}
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;
}
测试过可以. if("#".equals(temp))
{
break;
}
----------------解决方案--------------------------------------------------------