Ruby可以用 length ,size 这些关键字获得数组的大小


这里Ruby ,python, JAVA 都使用了类的方法


有静态方法,也有动态方法


首先是Ruby

#!/usr/bin/rubyclassProdefinitialize(example)@current_num=exampleenddefget_darr=Array.new(@current_num){|e|e=e*1}tmp=1foriin0..arr.length-1ifarr[i]-tmp>4puts"#{arr[i]}"tmp=arr[i]endendenddefself.put_Each()sum=0foriin0..10putsisum+=iendputssumendendObj1=Pro.new(17)Obj1.get_dPro.put_Each


然后是Python, 在#分割线之后的用的是单独的递归函数

#!/usr/bin/python#-*-coding:UTF-8-*-classPro:def__init__(self,example):self.current_num=exampledefget_d(self):arr=list(range(0,self.current_num))tmp=1foriinarr:ifi-tmp>4:printitmp=iObj1=Pro(17)Obj1.get_d()#################################################defget_distance(A):foriinA[1:]:ifi-A[0]>4:t=A.index(i)printireturnget_distance(A[t:])a=list(range(1,17))get_distance(a)


然后是C

#include"stdio.h"intmain(void){inti,arr[16];inttmp=1;for(i=0;i<16;i++){arr[i]=i+1;}for(i=0;i<16;i++){if(arr[i]-tmp>4){printf("%d\n",arr[i]);tmp=arr[i];}}return0;}


接下来是 C++

#include<iostream>usingnamespacestd;voidget_d(intarr[],intn){inti,*p=arr;inttmp=1;for(p=arr;p<arr+16;p++){if(*p-tmp>n){cout<<*p<<endl;tmp=*p;}}}intmain(){voidget_d(intarr[],intn);inta[16],*p=a,i;for(i=0;i<16;i++){p[i]=i+1;}get_d(a,4);return0;}


最后是Java

classPro{publicvoidget_d(intexample){int[]arr=newint[example];inttmp=1;for(inti=0;i<example;i++){arr[i]=i+1;}for(inti=0;i<arr.length;i++){if(arr[i]-tmp>4){System.out.println(arr[i]);tmp=arr[i];}}}}publicclassTest{publicstaticvoidmain(String[]args){ProObj1=newPro();Obj1.get_d(16);}}


JAVA 给原始数组赋值的语句直接写在 Pro 类的 get_d方法中了。