问题描述
做ACM练习题,用Java语言,一个问题困扰好久了:举个例子:输入一系列整数,整数的个数不固定:01234然后将所输入的整数求平方并逆序输出:169410我的问题是,既然题目中没有给出限制条件来判断何时输入结束(OJ上输入时是文件输入,自然有结尾,但如果在控制台上输入就没有了。。。),用(Scanner)hasNextInt()之类的函数判断也没用,那怎么输出正确结果呢?谢谢各位大虾了~~能解决的话分全给了,o(︶︿︶)o唉~~(注:以前接到过使用特殊字符如'n'或者空格,或者使用特殊数字如-1等来判断输入结束的答案,但由于题目输入形式已经固定,不像自己写软件之后要求客户输入什么来结束程序,自己不能另外加东西的,所以这些答案是不符合要求的。。。)
解决方案
解决方案二:
呵呵,我感觉楼主想多了吧?实现大体功能就行了吧,比如说将这些数放在运行时的参数放进去就行了.然后使用main方法里的String数组拿这些整数.
解决方案三:
引用楼主rrocky的回复:
做ACM练习题,用Java语言,一个问题困扰好久了:举个例子:输入一系列整数,整数的个数不固定:01234然后将所输入的整数求平方并逆序输出:169410我的问题是,既然题目中没有给出限制条件来判断何时输入结束(OJ上输入时是文件输入,自然有结尾,但如果在控制台上输入就没有了。。。),用(Scanner)hasNextInt()之类的函数判断也没用,那……
主要功能还是平方、逆序其他的可以默认已经准备好了
解决方案四:
引用楼主rrocky的回复:
注:以前接到过使用特殊字符如'n'或者空格,或者使用特殊数字如-1等来判断输入结束的答案,但由于题目输入形式已经固定,不像自己写软件之后要求客户输入什么来结束程序,自己不能另外加东西的,所以这些答案是不符合要求的。。。
按我一个愚人的看法,应该是输入完了回车换行的时候输入结束。
解决方案五:
引用3楼magong的回复:
引用楼主rrocky的回复:注:以前接到过使用特殊字符如'n'或者空格,或者使用特殊数字如-1等来判断输入结束的答案,但由于题目输入形式已经固定,不像自己写软件之后要求客户输入什么来结束程序,自己不能另外加东西的,所以这些答案是不符合要求的。。。按我一个愚人的看法,应该是输入完了回车换行的时候输入结束。
我用的是eclipse,在控制台中输入,回车换行的时候不会结束有时候输入的数据也需要换行,那样如果换行就结束的话也就不对了,呵呵,不过谢谢~~
解决方案六:
引用2楼ol_beta的回复:
引用楼主rrocky的回复:做ACM练习题,用Java语言,一个问题困扰好久了:举个例子:输入一系列整数,整数的个数不固定:01234然后将所输入的整数求平方并逆序输出:169410我的问题是,既然题目中没有给出限制条件来判断何时输入结束(OJ上输入时是文件输入,自然有结尾,但如果在控制台上输入就没有了。。。),用(Scanner)hasNextInt()之类的函……
呵呵,但是程序里面是要有输入输出的啊~~
解决方案七:
你设置一个标志位,比如输入0为结束,楼主想的有点深了
解决方案八:
要不你设定一下,输入换行为结束
解决方案九:
呵呵我也是搞ACM的LZ只要在WHILE判断里判断是否到文件结束也就是用Scanner.hasNext方法在循环体里收集输入然后再统一计算最后再倒序输出就行了OJ的评判机制是先将通过一个文件内容作为输入(所以才有文件结尾)然后把你的输出重定向到一个文件用你的输出和标准输出(也就是用标准程序跑的输出)对比最后得出你是否AC所以只要最后的输出对不管什么时候输出的(也就是先于下一输入还是在所有输入之后)都可以AC
解决方案十:
似乎搞JAVA的很少有搞过ACM的?
解决方案十一:
引用8楼mopishv0的回复:
呵呵我也是搞ACM的LZ只要在WHILE判断里判断是否到文件结束也就是用Scanner.hasNext方法在循环体里收集输入然后再统一计算最后再倒序输出就行了OJ的评判机制是先将通过一个文件内容作为输入(所以才有文件结尾)然后把你的输出重定向到一个文件用你的输出和标准输出(也就是用标准程序跑的输出)对比最后得出你是否AC所以只要最后的输出对不管什么时候……
是吗?我没那么试过,之前当然都是自己能得出结果之后再提交的你是说只要程序正确,即使控制台里显示不了结果也能AC吗?我之前用Scanner.hasNext()之类的函数来判断感觉都没用,其他题能找找结束标志,但是像这类的题只有先收集了所有输入之后再输出其实现在也感觉Java做ACM题不是很方便,毕竟那些题要求的只是解决问题,求出正确结果就行,呵呵
解决方案十二:
引用6楼yuanyue0540的回复:
你设置一个标志位,比如输入0为结束,楼主想的有点深了
呵呵,根据题目要求,不是我自己设置标志位就行,要不然跟标准输入不一致也没法做的啊,不过谢谢~~
解决方案十三:
引用10楼rrocky的回复:
引用8楼mopishv0的回复:呵呵我也是搞ACM的LZ只要在WHILE判断里判断是否到文件结束也就是用Scanner.hasNext方法在循环体里收集输入然后再统一计算最后再倒序输出就行了OJ的评判机制是先将通过一个文件内容作为输入(所以才有文件结尾)然后把你的输出重定向到一个文件用你的输出和标准输出(也就是用标准程序跑的输出)对比最后得出你是否AC……
不是显示不了也行==输入输出流的重定向是OJ做的你本地还是要显示出来的只是和输入顺序没关系比如你说的这道题你可以先把所有的输入存到数组里然后反向计算一边计算一边输出也可以反向计算然后把结果存在数组里最后一器输出只要输出的结果与标准输出文件一致就行JAVA有JAVA的优势正式比赛JAVA可以获得3倍时间还有大整数和高精度类库直接导致这几年没有大整数和高精度问题了原来正式比赛有时还需要手敲大整数的
解决方案十四:
哦,谢谢你了~我下午试试~~
解决方案十五:
该回复于2011-02-28 13:37:35被版主删除