对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。
输入格式:
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。
输出格式:
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。
输入样例:
888 666 123 -233 250 13 250 -222
输出样例:
5
cpp的很快就做出来了
#include<iostream>
using namespace std;
int main(){
int x = 0;
while(1){
x++;
int N = 0;
cin>>N;
if(N == 250){
cout<<x<<endl;
break;
}
}
return 0;
}
照着cpp的样子写了Java的:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
int x = 0;
while(1){
x++;
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
if(N == 250){
System.out.println(x);
break;
}
}
}
}
报错:
Main.java:6: error: incompatible types: int cannot be converted to boolean
while(1){
^ 1 error
搜了搜
java里while(1)应该是非法的,因为java强制要求while()里面的条件表达式必须是boolean型,而不能是int。
C/C++里用while(1)是可以的,和while(true)等价。
改成while(true),还是不行。样例的测试用例输出了空行。
拿IDEA自己试了下,如果几个输入数字之间是空格输入的话,返回不了值;如果几个输入数字之间是回车的话,可以输出想要的值。
度了一下,看的这位老哥写的L1-041 寻找250 java语言:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int count = 0;
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String str1[] = str.split(" ");
while (true) {
if (str1[count].equals("250")) {
System.out.println(++count);
break;
}
count++;
}
}
}
继续往下学Java了,水平还是不大行。