Java编程时的困惑

问题描述

做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被版主删除

时间: 2024-09-28 19:10:09

Java编程时的困惑的相关文章

Java运行时多态性的实现_Java编程

InterA  a; a= new B(); a.fun();         a = new C();  a.fun();         } } 输出结果为: This is B This is C 上例中类B和类C是实现接口InterA的两个类,分别实现了接口的方法fun(),通过将类B和类C的实例赋给接口引用a而实现了方法在运行时的动态绑定,充分利用了"一个接口,多个方法"展示了Java的动态多态性. 需要注意的一点是:Java在利用接口变量调用其实现类的对象的方法时,该方法必

java代码编程时,做初始化(不用new()方法),怎么做?

问题描述 java代码编程时,做初始化(不用new()方法),怎么做? java代码编程时,做初始化(不用new()方法),怎么做? 解决方案 public class AccpTeacher { private String name; private int age; public AccpTeacher() { name = "无名氏"; age = 22; } public AccpTeacher(String name) { this.name = name; this.ag

在JAVA 2D编程时,如何获得Graphics/Graphics 2D的DPI?

问题描述 在JAVA2D编程时,需要获得Graphics/Graphics2D的DPI,但是我查了GraphicsConfiguration,GraphicsDevice和DisplayMode这几个相关的类,可没有和DPI相关的函数.请问这个问题如何解决呢. 解决方案 解决方案二:我記得有getRGB(int,int)這樣的方法有好多個

java编程思想动态代理实现事务

问题描述 各位大侠好,最近在研读Java编程思想,在看到动态代理这块的时候遇到一点问题,是一个课后习题.大概是这样的:使用动态代理来编写一个系统以实现事务,其中,代理在被代理的调用执行成功时(不抛出任何异常)执行提交,而在其执行失败时执行回滚.你的提交和回滚都针对一个外部的文本文件,该文件不再Java异常的控制范围内.你必须注意操作的原子性.感觉这道题很有意义,但是由于是新手,自己在读题和解题的时候都比较困惑,所以希望各位达人能帮忙解答一下.最好有个完整的例子.小弟仅有的45分全部奉上! 解决方

Java编程中10个最佳的异常处理技巧_java

在实践中,异常处理不单单是知道语法这么简单.编写健壮的代码是更像是一门艺术,在本文中,将讨论Java异常处理最佳实践.这些Java最佳实践遵循标准的JDK库,和几个处理错误和异常的开源代码.这还是一个提供给java程序员编写健壮代码的便利手册.Java 编程中异常处理的最佳实践 这里是我收集的10个Java编程中进行异常处理的10最佳实践.在Java编程中对于检查异常有褒有贬,强制处理异常是一门语言的功能.在本文中,我们将尽量减少使用检查型异常,同时学会在Java编程中使用检查型VS非检查型异常

java代码-关于CSDN英雄会挑战赛 java编程中的一些问题

问题描述 关于CSDN英雄会挑战赛 java编程中的一些问题 各位大神,我在挑战英雄会的题目的时候,在线下运行的没有问题,可是一提交就会提示,"挑战失败:你的程序正常编译,不过运行时发生错误,通常是代码有问题,如除数为零数组上下界溢出等" 我觉得可能是java输入数据时的问题,因为题目要求:输入多行数据,输出多行我是这样写的: Scanner scanner = new Scanner(System.in); ArrayList list = new ArrayList(); do {

Java编程那些事儿101——网络编程概述

第十三章 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛,很简单的事情啊!其实初学者如果入门网络编程的话也可以做到这么简单! 网络编程就是在两个或两个以上的设备(例如计算机)之间传输

java编程,在屏幕上显示一个带标题的窗口,并添加一个按钮

问题描述 java编程,在屏幕上显示一个带标题的窗口,并添加一个按钮 编写程序,在屏幕上显示一个带标题的窗口,并添加一个按钮,当用户单击按钮时,弹出对话框,显示用户单击了按钮. 解决方案 找点Java 的 Swing学习资料,这种界面估计用netbean或idea都可以自动生成. 解决方案二: import java.awt.Frame; import java.awt.Graphics; import java.awt.GridLayout; import java.awt.event.Act

Java新手入门:Java编程三十条规则

编程 1) 类名首字母应该大写.字段.方法以及对象(句柄)的首字母应小写.对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母.例如: ThisIsAClassName thisIsMethodOrFieldName 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母.这样便可标志出它们属于编译期的常数. Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此.对于域名扩展名称,如com,org,net