题目 1074: 数字整除 题解
读取输入:使用Scanner读取输入数据,处理每一行,直到读取到"0"结束。 分割数字:将每个数字分割为个位数字和剩余的部分。 计算差值:将剩余部分转换为大整数,减去个位数字的5倍。 模运算:检查差值是否是17的倍数,通过模17的结果来判断。 输出结果:如果差值是17的倍数,输出1,否则输出0。 读取输入:使用 处理输入数据:检查每行是否为"0",若是则结束循环。 分割数字:将字符串分割为前面部分和个位数字。 转换为大整数:将前面部分和个位数字分别转换为 计算差值:计算前面部分减去个位数字的5倍。 模运算:检查差值是否是17的倍数,输出结果。
发布日期:2021-04-30 21:04:25
浏览次数:90
分类:精选文章
本文共 1279 字,大约阅读时间需要 4 分钟。
要解决这个问题,我们需要判断给定的大整数是否是17的倍数。方法是将其个位数字去掉,然后从剩下的数中减去个位数的5倍,检查差值是否是17的倍数。
方法思路
解决代码
import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sr = new Scanner(System.in); BigInteger b = BigInteger.valueOf(17); while (sr.hasNext()) { String str = sr.nextLine(); if ("0".equals(str)) { break; } String dStr = str.substring(0, str.length() - 1); char lastChar = str.charAt(str.length() - 1); BigInteger d = new BigInteger(dStr); BigInteger c = BigInteger.valueOf(Character.getNumericValue(lastChar)); BigInteger diff = d.subtract(c.multiply(BigInteger.valueOf(5))); if (diff.mod(b).equals(BigInteger.ZERO)) { System.out.println(1); } else { System.out.println(0); } } }} 代码解释
Scanner读取输入数据,处理每一行数据。BigInteger对象。这种方法确保了能够处理非常大的数,并且通过模运算高效地判断倍数关系。
发表评论
最新留言
表示我来过!
[***.240.166.169]2026年06月16日 05时27分41秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
rabbitmq逻辑与开发
2023-03-01
php实现根据身份证获取年龄
2023-03-01
PHP实现的MongoDB数据增删改查
2023-03-01
PHP实现的SSO单点登录系统,拿走就用吧
2023-03-01
php实现短信验证功能
2023-03-01
php实现逆转数组
2023-03-01
PHP实现通过geoip获取IP地理信息
2023-03-01
PHP实现页面静态化、纯静态化及伪静态化
2023-03-01
php容许ajax跨域,PHP设置允许ajax跨域请求的两种常见方法
2023-03-01
RabbitMQ进程结构分析与性能调优
2023-03-01
PHP对接百度地图
2023-03-01
PHP对表单提交特殊字符的过滤和处理
2023-03-01
php对象引用和析构函数的关系
2023-03-01
RabbitMQ HTTP 认证后端项目常见问题解决方案
2023-03-01
PHP将图片转换成base64格式(优缺点)
2023-03-01
php将多个值的数组去除重复元素
2023-03-01
php局域网上传文件_PHP如何通过CURL上传文件
2023-03-01
PHP工具插件大全
2023-03-01
php布尔值的++
2023-03-01