精华内容
下载资源
问答
  • 等差数列

    2019-05-31 08:50:03
    2019年5月30日等差数列前言思路代码 等差数列 题目:如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。 小易现在有一个长度为n的数列x,小易想把x...

    等差数列

    题目:如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。
    小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列

    输入:输入包括两行,第一行包含整数n(2 ≤ n ≤ 50),即数列的长度。
    第二行n个元素x[i](0 ≤ x[i] ≤ 1000),即数列中的每个整数
    输出:如果可以变成等差数列输出"Possible",否则输出"Impossible"。

    示例:
    3
    3 1 2
    输出:Possible

    前言

    5月底了,可能找不到实习了,但还是加油吧。这几天的精神状态都不是很好,争取早日调整过来。

    思路

    判断等差数列很简单,后项减前项是否是一个常数。

    代码

    package mianshiti;
    
    import java.util.Scanner;
    
    public class mianshiti7 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner scan=new Scanner(System.in);
    		int len=scan.nextInt();
    		int [] array=new int [len];
    		for(int i=0;i<len;i++) {
    			array[i]=scan.nextInt();
    		}
    		sort(array);
    		int d=array[1]-array[0];
    		int count=0;
    		for(int i=0;i<len;i++) {
    			int j=i+1;
    			if(j<len&&array[j]-array[i]==d) {
    				count++;
    			}
    		}
    		if(count==len-1) {
    			System.out.print("Possible");
    		}else {
    			System.out.print("Impossible");
    		}
    	}
    
    	private static int [] sort(int[] array) {
    		// TODO Auto-generated method stub
    		int len=array.length;
    		for(int i=0;i<len;i++) {
    			for(int j=0;j<len;j++) {
    				int temp;
    				if(array[i]>array[j]) {
    					temp=array[i];
    					array[i]=array[j];
    					array[j]=temp;
    				}
    			}
    		}
    		return array;
    	}
    
    }
    
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,003
精华内容 14,801
关键字:

等差数列