设计一个算法,看下面数列 -2,3,4,23,-18,25,4,-4,1,8,17,-20.求出数据8在该数列的第几项.
问题描述:
设计一个算法,看下面数列 -2,3,4,23,-18,25,4,-4,1,8,17,-20.求出数据8在该数列的第几项.
数列是依次输入
答
楼主应该说的再详细一些,数列是用户不停输入的嘛?数据8是题目给的要在用户输入的数列中匹配的吗?
我写了个很简单的Java代码,如果需要别的语言再跟我说。
import java.util.Scanner;
public class findTarget {
public static int findthetarget(int target) {
Scanner a = new Scanner(System.in);//开启scanner;
int notinarray = -1;//用-1作为数组中没有这个数字的标识
int pos = 0;
System.out.println("请连续输入数组中的数字,以字母结尾");
while(a.hasNextInt())
{
if(a.nextInt() == target)
{
pos++;
a.close();
return pos;
//如果发现所需数字就返回,不执行后续代码;
}
else
{//未发现,进行下一个;
pos++;
}
}
a.close();//整个输入结束,关闭scanner;
return notinarray;//整个数组未发现所需数字,返回-1;
}
public static void main(String[] args)
{
int pos = findthetarget(8);
if(pos == -1)
System.out.println("数组中不存在您所需要的数字!");
else
System.out.println("数字8在数组中的位置是:"+String.valueOf(pos));
}
}
这是你的数组,因为是连续输入,要以非int类型作为结尾标识;
这是一种不存在所需数字的情况。
无论哪种语言,思路应该都是相似的,希望能够帮到你。