1031 查验号码

2023-11-19

一个号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:

首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:

Z:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2

现在给定一些号码,请你验证校验码的有效性,并输出有问题的号码。

输入格式:

输入第一行给出正整数N(≤100)是输入的号码的个数。随后N行,每行给出1个18位号码。

输出格式:

按照输入的顺序每行输出1个有问题的号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出All passed

输入样例1:

4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X

输出样例1:

12010X198901011234
110108196711301866
37070419881216001X

输入样例2:

2
320124198808240056
110108196711301862

输出样例2:

All passed

import java.util.Scanner;

public class Main  {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int lines = sc.nextInt();
		int[] id = new int[17];
		int[] qz = new int[] { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
		String[] xy = new String[] { "1", "0", "X", " 9", " 8", "7", " 6", " 5", " 4", " 3", " 2" };
		boolean isFlag = true;
		JUMP: for (int i = 0; i < lines; i++) {
			String s = sc.next();
			String[] ids = s.split("");
			for (int k = 0; k < 17; k++) {
				try {
					id[k] = Integer.parseInt(ids[k]);
				} catch (NumberFormatException e) {
					System.out.println(s);
					isFlag = false;
					continue JUMP;
				}
				id[k] *= qz[k];
			}
			String x = ids[17];
			int sum = 0;
			for (int j = 0; j < 17; j++) {
				sum += id[j];
			}
			int z = sum % 11;

			if (z == 0 && x.equals("1")) {
				continue;
			} else if (z == 1 && x.equals("0")) {
				continue;
			} else if (z == 2 && x.equals("X")) {
				continue;
			} else if (z == 3 && x.equals("9")) {
				continue;
			} else if (z == 4 && x.equals("8")) {
				continue;
			} else if (z == 5 && x.equals("7")) {
				continue;
			} else if (z == 6 && x.equals("6")) {
				continue;
			} else if (z == 7 && x.equals("5")) {
				continue;
			} else if (z == 8 && x.equals("4")) {
				continue;
			} else if (z == 9 && x.equals("3")) {
				continue;
			} else if (z == 10 && x.equals("2")) {
				continue;
			} else {
				System.out.println(s);
				isFlag = false;
			}

		}
		if (isFlag) {
			System.out.println("All passed");
		}
		sc.close();
	}

}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1031 查验号码 的相关文章

  • 透明平开窗

    我有一点JWindow上面有一个标志 用户可以将东西拖到上面 我主要在 OS X 上开发我的应用程序 为了获得我使用的透明窗口 setBackground new Color 0 0 0 0 在 Mac 上 这工作得很好 但在 Window
  • Java:高性能消息传递(单生产者/单消费者)

    我最初问这个问题here https stackoverflow com questions 3367192 java is while true loop in a thread bad whats the alternative 但我意
  • 在Java中清空数组/处理

    除了循环遍历数组中的每个元素并将每个元素设置为 null 之外 Java 处理中是否有一个本机函数可以简单地清空数组 或销毁它 以便能够将其重新声明为新数组 There s Arrays fill myArray null 并不是说它执行的
  • 线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有opencv_java249

    我目前正在尝试在我的 32 位笔记本电脑上设置 OpenCV 但我不断收到一条令我困惑的错误消息 Exception in thread main java lang UnsatisfiedLinkError no opencv java2
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 如何识别 Java 中的不可变对象

    在我的代码中 我正在创建一个对象集合 这些对象将由各种线程以只有在对象不可变的情况下才安全的方式访问 当尝试将新对象插入到我的集合中时 我想测试它是否是不可变的 如果不是 我将抛出异常 我能做的一件事是检查一些众所周知的不可变类型 priv
  • 用 java 编写解释器时的 switch 或 if 语句

    当前的作业需要我编写一个程序 以一种非常微小且基本的编程语言 行为有点像 FORTRAN 来读取包含指令的文件并执行这些指令 基本上它是我猜的语言的简单解释器 它是完全线性的 所有语句都是按顺序定义的 并且只有字符串和整数变量 我需要查找和
  • 如何将自定义日志处理程序添加到 Google App Engine?

    我正在尝试向我的 java 应用程序添加自定义日志处理程序 我已经实现了一个扩展 java util Logging Handler 类的 InnerLogger 类 在我的logging properties中声明为处理程序 handle
  • 支持通过 OAuth 进行 Facebook/Twitter 身份验证的 CAS 服务器

    我正在寻找一个支持 Facebook Twitter 通过 OAuth 进行单点登录身份验证的 CAS 服务器 我检查过 JASIG CAS 服务器 但它看起来不支持它们 我的 java web 应用程序基于 Spring Security
  • 从关卡堆栈中获取相对比例的数学

    为这个可怕的标题道歉 我花了 10 分钟试图用一句话来解释这一点 但失败了 虽然提示这个问题的应用程序是用Java Android 编写的 但我认为它非常通用并且适用于任何语言 欢迎使用伪代码 或简单的英语 回复 我不确定是否应该标记所有通
  • 如何使用 Guava 连接字符串?

    我写了一些代码来连接字符串 String inputFile for String inputLine list inputFile inputLine trim 但我不能使用 连接 所以我决定使用 Guava 所以我需要使用Joiner
  • HTTP PUT 在 Java 中上传文件

    Edit 我想我已经弄清楚如何执行二进制数据部分 仔细检查代码 但我很确定我做对了 现在 当我尝试按照中所述完成上传时遇到新错误Vimeo API 文档 http vimeo com api docs upload streaming Ed
  • 是否可以为 azure blob 存储中的给定目录生成具有写入权限的 SAS(共享访问签名)

    我们的 blob 存储帐户结构 容器名称 simple 在这个容器内我们有 blob aa one zip aa two zip bb ss zip bb dd zip 是否可以生成对aa 目录 有写权限 但对bb 目录 没有访问权限的SA
  • 在Java中多次读取System.in会导致IOException?

    我正在尝试创建一个小命令行游戏来强化我在过去几个月中在 Java 中学到的一些东西 我正在尝试创建一个名为 readInput 的方法 它返回一个我可以一次又一次调用的字符串 第一次它工作正常 但第二次它会导致 IO Exception 如
  • 战争库中的罐子爆炸

    我们可以将分解的 jar 文件放入 war web inf 库中吗 它在 JBOSS 4 2 中对我不起作用 我收到以下错误并且无法部署应用程序 Caused by javax management RuntimeOperationsExc
  • Selenium - 等待网络流量

    我们将 Selenium 与 Java API 和一些 Javascript 用户扩展一起使用 我们在应用程序中使用了大量 AJAX 调用 我们的许多测试随机失败 因为有时 AJAX 调用完成得比其他时候慢 因此页面未完全加载 我们通过等待
  • Google Cloud Messaging - 立即收到或长时间延迟收到的消息

    我在大学最后一年的项目中使用谷歌云消息传递 一切正常 但我在使用 GCM 时遇到了一些麻烦 通常 消息要么几乎立即传递 要么有很大的延迟 我读过这篇文章 但我真的认为它不适用于这种情况 GCM 通常会在消息发送后立即传送消息 然而 这并不总
  • 如何从spark中的hbase表中获取所有数据

    我在 hbase 中有一个大表 名称为 UserAction 它具有三个列族 歌曲 专辑 歌手 我需要从 歌曲 列族中获取所有数据作为 JavaRDD 对象 我尝试了这段代码 但效率不高 有更好的解决方案来做到这一点吗 static Spa
  • H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

    所以我有一个 DB2 生产数据库 我需要在其中使用可用的函数 ListAgg 我希望使用 H2 的单元测试能够正确测试此功能 不幸的是H2不直接支持ListAgg 但是 我可以创建一个用户定义的聚合函数 import java sql Co
  • Integer.parseInt 引发的 NumberFormatException

    嘿 我在学校上编码课 但老师没有很好地解释 所以我们必须在网上查找我所做的信息 但我无法找到代码中的错误 你能帮我吗 char end s do System out println Tipo de boleto char boleto c

随机推荐

  • 实验6Hive分组排序

    实验6Hive分组排序 实验目的及要求 掌握Hive中全局排序Order by 内部排序Sort by的用法及区别 掌握Hive中Group by分组语句的用法 了解Hive中Distribute By分区排序 Group By及Clust
  • 成年人正确学英语的方式

    成年人正确学英语的方式 本人女 毕业两年 2020年3月份开始准备考试商务英语bec的考试 到2020年5月29号考试 期间准备了3个月 最终以165分的成绩通过商务英语bec中级考试 本着以热爱学习乐于分享的精神 给大家开源下我的bec的
  • 【历史上的今天】10 月 2 日:ENIAC 计算机退休;贝尔德发明电视;香港科技大学办学

    整理 王启隆 透过 历史上的今天 从过去看未来 从现在亦可以改变未来 今天是 2021 年 10 月 2 日 在历史上今天发生的科技关键事件不比昨天要少 举世闻名的通用电子计算机 ENIAC 便在今天退休 我国享誉世界的学府香港科技大学正式
  • vector的讲解及模拟实现(c++)

    为了方便大家理解我们边模拟实现vector容器的常用操作 然后根据代码讲解如何使用vector的这些功能 这样的话相信可以帮助大家更好的理解vector 目录 一 vector的介绍 二 vector模拟实现的讲解 1 vector的模块分
  • 计算机两个硬盘如何区分,双硬盘电脑怎么设置主从盘?

    随着电脑中存储的资料逐步增加 我以前电脑的硬盘空间严重不足 所以我购买了一块新硬盘 但是 两块硬盘放在一起工作后 经常发生死机 运行速度慢等问题 我查了很多资料后 最终确定是主从盘设置方面出的问题 本文将为大家介绍我是如何解决问题的 一 区
  • 毕业设计-基于深度学习的新闻推荐算法研究

    目录 前言 课题背景和意义 实现技术思路 基于深度学习的新闻推荐方法 1 DNR中的 两段式 方法 2 DNR中的 融合式 方法 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备
  • ubuntu的root用户ssh远程登录问题

    ubuntu默认不允许root远端登录 其它创建的用户默认是可以的 编辑ssh服务的配置文件 cd etc ssh 修改sshd config文件 设置允许root用户远程登录 找到 PermitRootLogin prohibit pas
  • R语言基础——缺失数据

    R语言基础 缺失数据 缺失数据的分类 统计学家通常将缺失数据分为三类 它们都用概率术语进行描述 但思想都非常直观 我们将用sleep研究中对做梦时长的测量 有12个动物有缺失值 来依次阐述三种类型 1 完全随机缺失 若某变量的缺失数据与其他
  • 问题(四)No matching distribution found for anyjson==0.3.3

    前言 本章主要讲述安装anyjson时提示 No matching distribution found for anyjson 0 3 3 的解决方案 一 问题描述 描述 批量下载第三方包时 提示 找不到anyjson0 3 3的匹配分布
  • 卷积神经网络识别花卉并分类另保存

    本篇博客转载自卷积神经网络训练花卉识别分类器 本篇博客的所有代码已上传至GitHub仓库 后续会更新各个文件夹及文件的详细说明 用者自取 由于卷积神经网络训练花卉识别分类器博客已将模型的训练 测试代码写好 且可以通过这篇博客获取到大神训练好
  • 获取,设置HTML控件位置

    得到HTML控件的位置 var v document all oo getBoundingClientRect 设置HTML控件的位置 dd style top v top dd style left v left
  • 关于2018网易游戏web前端实习生面试经历

    去年报名的网易前端面试 没想到过了3个月居然收到了面试的通知 心里也是激动 花了一天时间面试 自己总结一下面试过的问题 问题可能不全 但是这些是我所能记起来的问题 一面 1 css高度坍塌 两个盒子 一个下边据20px 一个上边据50px
  • Vue3项目创建

    1 新建一个文件夹 存放路径 2 Ctrl A选中路径 输入cmd 3 打开之后 输入vue create my project my project可以任意定义 这里作者用的vue3 study Please pick a preset
  • 基础目标检测算法CNN、RCNN、Fast RCNN、Faster RCNN

    基础目标检测算法介绍 CNN RCNN Fast RCNN和Faster RCNN 1 CNN 问题 输入尺寸固定 对于普通的CNN网络 由于输入图片中的物体可能有不同的长宽比 空间位置 目标物体可能占据图片的大部分 也可能是一小部分 目标
  • XSS挑战之旅平台通关练习level1-level6

    部署容器 进入XSS挑战之旅 首先需要关闭防火墙 输入以下命令进行关闭 gt systemctl stop c gt firewall cmd h c gt systemctl stop firewalld service gt syste
  • mssql数据库和Oracle数据库注入

    MS SQL Server注入 简介 MS SQL Server是微软推出的一款数据库产品 主要面向中小企业 其最大的优势就是在于集成了微软公司的各类产品及资源 提供了强大的可视化界面 高度集成的管理开发工具 在快速构建商业智能 BI 方面
  • java解决redis缓存与数据库一致性问题

    一 如何利用Redis缓存优化数据库性能 使用 Redis 缓存可以有效地提升数据库的性能和响应速度 下面是一些常见的 Redis 缓存优化技巧 对热点数据进行缓存 通过分析系统的访问模式 找出经常被访问的热点数据 缓存到 Redis 中
  • 设置背景图片不平铺

    图片路径 background image url static demo jpg 不平铺 background repeat no repeat 居中显示 background position center 拉伸占满整个容器 backg
  • C++ 实例化对象

    实例化对象 意味着一定有调用构造函数 实例化就是给 数据成员分配内存 构造对象 对象的成员函数和普通函数的区别就是 成员函数有个指向当前对象的this指针 可以访问对象的成员变量 其依赖于对象 静态函数就更像一个全局函数 没有this指针
  • 1031 查验号码

    一个号码由17位地区 日期编号和顺序编号加1位校验码组成 校验码的计算规则如下 首先对前17位数字加权求和 权重分配为 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 然后将计算的和对11取模得到值Z 最后按照以下关