我明年在学校的Java教科书中遇到了问题,我无法弄清楚如何正确地完成这项工作。它希望我使用布尔值来检查输入的数字是否是6位数。我将复制并粘贴问题以便更清晰。
**旅行门票公司出售航空公司,旅游团和其他旅行相关的门票
服务。因为票务代理经常输错长票 数字,旅行
门票已要求您编写指示无效的应用程序 门票号码
条目。班级提示票务代理输入六位数的票证 数。票
数字的设计使得如果你丢弃数字的最后一位数字,
数字乘以7,除法的余数将与。相同 最后一位数字。以下示例说明了此过程:
步骤1输入票号;例如,123454。
步骤2删除最后一位数字,留下12345。
步骤3确定票号除以7时的余数。 在此
步骤4分配比较的布尔值 余数和
步骤5在消息框中显示结果为true或false。
案例,12345除以7,其余为4。
从票号中删除的数字。
接受代理商的票号并验证它是否为 有效号码。
使用以下票号测试应用程序:
l 123454;比较应评估为真
147103;比较应评估为真
l 154123;比较应该评估为假
将程序保存为TicketNumber.java。**
这是我的代码
//variables int ticketNum; Scanner input = new Scanner(System.in); //prompt for input of ticket number System.out.println("Please enter a ticket number >> "); ticketNum = input.nextInt(); //arithmetic for figuring out ticket number int lastDigit = ticketNum / 10; boolean ticketValidation = (lastDigit % 7) == ticketNum; //output for validation System.out.println("this ticket number is " + ticketValidation);
每次我运行它都会出现错误。
谢谢你的帮助,请不要吝啬,我是新来的。2 个答案:
答案 0 :(得分:3)
int lastDigit = ticketNum / 10;
没有给你最后一位数字,它会为你提供除最后一位数之外的所有数字。 然后(lastDigit % 7)
给你原始ticketNum的十分之一,mod 7.这将是0到6之间的int
。0到6之间的
int
无法与原来的六位数相等!该过程被称为"笔检查",您应该使用它。
请用语言向我们描述算法应该是什么。
答案 1 :(得分:0)
你需要这样做:
int remainingDigits = ticketNum/10; int lastDigit = ticketNum%10; boolean ticketValidation = (remainingDigit % 7) == lastDigit;