湖南省第六届大学生计算机程序设计竞赛---数字整除
1008: 数字整除
时间限制: 1 Sec 内存限制: 128 MB
提交: 6 解决: 4
[提交][状态][讨论版]
题目描写叙述
定理:把一个至少两位的正整数的个位数字去掉。再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。
比如。34是17的倍数。由于3-20=-17是17的倍数;201不是17的倍数,由于20-5=15不是17的倍数。
输入一个正整数n。你的任务是推断它是否是17的倍数。
输入
输入文件最多包括10组測试数据。每一个数据占一行,仅包括一个正整数n(1<=n<=10100),表示待推断的正整数。n=0表示输入结束。你的程序不应当处理这一行。
输出
对于每组測试数据。输出一行,表示对应的n是否是17的倍数。
1表示是,0表示否。
例子输入
34 201 2098765413 1717171717171717171717171717171717171717171717171718 0
例子输出
1 0 1 0
提示
简单大数问题:
開始以为就直接能够水过。这个代码直接wa了。
#include <cstdio>
#include <cstring>
int main()
{long long n;long long sum;while(scanf("%I64d",&n)&&n!=0){sum=n/10-(n%10*5);if(sum%17==0)printf("1\n");elseprintf("0\n");}return 0;
}
后来就换用java做大数处理。
import java.math.BigInteger;
import java.util.Scanner;public class nyist664 {public static void main(String[] args) {Scanner scanf=new Scanner(System.in);while(scanf.hasNext()){BigInteger sum=scanf.nextBigInteger();if(sum.equals(BigInteger.ZERO))break;BigInteger n = BigInteger.valueOf(5);//把int型换成大整数型BigInteger m= BigInteger.valueOf(17);sum=sum.divide(BigInteger.TEN).subtract(sum.mod(BigInteger.TEN).multiply(n));//依照题意,去掉个位数。减去个位数乘以5的值sum=sum.mod(m);//模17if(sum.equals(BigInteger.ZERO)){System.out.println(1);}else System.out.println(0);}}}
这是按题意这样做,直接就过了;
或者直接依照java大数模17也能够过。
import java.math.BigInteger;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanf=new Scanner(System.in);while(scanf.hasNext()){BigInteger sum=scanf.nextBigInteger();if(sum.equals(BigInteger.ZERO))break;BigInteger n = BigInteger.valueOf(17);//sum=sum.divide(BigInteger.TEN)-(sum.mod(BigInteger.TEN).multiply(n));//这里開始写错了sum=sum.mod(n);if(sum.equals(BigInteger.ZERO)){System.out.println(1);}else System.out.println(0);}}}
后来看到别人用c++过的代码,直接用的整型,感觉整型应该不够啊。可是也过了;
#include<stdio.h>
int main()
{int i,sum;char str[105];while(scanf("%s",str)&&str[0]!='0'){sum=0;for(i=0;str[i]!='\0';i++){sum=sum*10+str[i]-'0';sum=sum%17;}printf("%s\n",sum?
"0":"1"); } return 0; }
这个代码也写的非常简洁,效率也非常高。
转载于:https://www.cnblogs.com/yxwkf/p/5320196.html
湖南省第六届大学生计算机程序设计竞赛---数字整除相关推荐
- 湖南省第六届大学生计算机程序设计竞赛---弟弟的作业
1007: 弟弟的作业 时间限制: 1 Sec 内存限制: 128 MB 提交: 3 解决: 3 [提交][状态][讨论版] 题目描述 你的弟弟刚做完了"100以内数的加减法" ...
- 湖南省第六届大学生计算机程序设计竞赛 弟弟的作业
你的弟弟刚做完了"100以内数的加减法"这部分的作业,请你帮他检查一下.每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中a和b是作业中给出的,均为不超过100的非负 ...
- 湖南省大学生计算机应用竞赛,湖南省第16届大学生计算机程序设计竞赛
为激发大学生对计算机程序设计的兴趣,提高学生综合运用基础知识进行算法设计.分析和编程实现的能力,培养大学生的创新能力和团队合作精神,湖南省第16届大学生计算机程序设计竞赛于10月17日-10月18日在 ...
- 中南大学计算机程序设计实践,我校在湖南省第七届大学生计算机程序设计竞赛中载誉归来...
9月15日,湖南省第七届大学生计算机程序设计竞赛在湖南农业大学成功举办.我校代表队在本次竞赛中载誉而归,派出的4支参赛队伍中,一支队伍夺得一等奖,三支队伍夺得二等奖. 湖南省大学生计算机程序设计竞赛是 ...
- 湖南省第十届蓝狐网络杯大学生计算机程序设计竞赛,2018湖南省第14届大学生计算机程序设计竞赛 C: 时间旅行...
Description 假设 Bobo 位于时间轴(数轴)上 t0 点,他要使用时间机器回到区间 (0, h] 中. 当 Bobo 位于时间轴上 t 点,同时时间机器有 c 单位燃料时,他可以选择一个 ...
- CSU 1803 2016 (数学)【2016年湖南省第十二届大学生计算机程序设计竞赛 - A】
题目点我点我点我 湖南省第十二届大学生计算机程序设计竞赛 1803: 2016 Time Limit: 5 Sec Memory Limit: 128 MB Submit: 289 Solve ...
- 2018年湖南省第十四届大学生计算机程序设计竞赛 CSU 2164: 2018
题目传送门 不会自己推,比赛现场找规律. 代码: #include<bits/stdc++.h> using namespace std;typedef long long LL; con ...
- 2016年湖南省第十二届大学生计算机程序设计竞赛
题目: 任意门 听说这套题目是叉姐出的,感觉呵呵了... 据说现场牌都不够发的!!!只能说给湖南省出的题目太强了,不适合新手去做,当然我这种老手也不见得做的多好,出了3题,赶在了三等首,但是感觉自己被 ...
- 2016年湖南省第十二届大学生计算机程序设计竞赛(重现)
A(1803):2016 Submit Page Summary Time Limit: 5 Sec Memory Limit: 128 Mb Submitted: 245 ...
最新文章
- python列表解析的新方法
- CSS学习六:布局剖析
- MS SQL入门基础:创建索引
- vscode 注释_VSCode最强助攻
- AR、美颜、机器人:计算机视觉库几乎无所不在
- linux 运行msi文件是什么意思,查看Msi文件内容
- php 多个数组乘积_VLOOKUP参数使用数组
- 将 WinForms 应用从 .NET Core 3.0 升级到 3.1
- Visible Trees HDU - 2841(容斥)
- CentOS6.9编译安装LNMP环境
- Mybatis动态sql语句的生成
- SQL2008附加数据库只读怎么修改
- python中class什么意思_【转载】在python的class中的,self到底是什么?
- pat A1032:sharing 题解(简单静态链表)
- 船说CMS小说采集-船说小说免费采集-船说CMS自动采集发布方法详解
- DNS反劫持的几种方式
- 隐藏在网络邻居背后的协议,快来看看你家网络有几种?
- 【论文研读】【目标检测】Revisiting Open World Object Detection
- 光圈和快门速度的组合
- 追忆信息论之父-香农博士