本文主要是介绍【九度】题目1052:找x,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目1052:找x时间限制:1 秒内存限制:32 兆特殊判题:否提交:4671解决:2504
题目描述:
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。
输入:
测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。
输出:
对于每组输入,请输出结果。
样例输入:
2
1 3
0
样例输出:
-1
来源:
2010年哈尔滨工业大学计算机研究生机试真题
答疑:
解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7776-1-1.html
【解题思路】
基本题,数组不是有序的,如果要二分查找还得排序,不如直接搜索,找到就返回位置快捷。
Java AC
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;public class Main{/** 1052*/public static void main(String[] args) throws Exception{StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));while(st.nextToken() != StreamTokenizer.TT_EOF){int n = (int)st.nval;int array[] = new int[n];for(int i = 0; i < n; i++){st.nextToken();array[i] = (int)st.nval;}st.nextToken();int x = (int)st.nval;System.out.println(findPos(array, x));}}private static int findPos(int array[], int x){int len = array.length;for(int i = 0; i < len; i++){if(array[i] == x){return i;}}return -1;}
}/**************************************************************Problem: 1052User: wangzhenqingLanguage: JavaResult: AcceptedTime:70 msMemory:14572 kb
****************************************************************/
C++ AC
#include<stdio.h>
int array[202];
int findPos(int n,int x)
{int i=0;for(i = 0; i < n; i++){if(array[i] == x){return i;}}return -1;
}
int main()
{int n;int i, x;while(scanf("%d",&n) != EOF){for(i = 0; i < n; i++){scanf("%d",&array[i]);}scanf("%d",&x);printf("%d\n",findPos(n,x));}return 0;
}/**************************************************************Problem: 1052User: wangzhenqingLanguage: C++Result: AcceptedTime:0 msMemory:1020 kb
****************************************************************/
这篇关于【九度】题目1052:找x的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!