湖南省第六届大学生计算机程序设计竞赛—数字整除

湖南省第六届大学生计算机程序设计竞赛—数字整除

大家好,又见面了,我是全栈君。

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");
       else
        printf("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);//模17
			if(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://javaforall.net/115589.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • shell中if语句_shell脚本if判断

    shell中if语句_shell脚本if判断提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、if语句1.if单分支判断2.if双分支判断3.if多分支判断总结提示:以下是本篇文章正文内容,下面案例可供参考一、if语句1.if单分支判断●当“条件成立”时执行命令序列●否则不执行任合操作语法格式♦if空格条件测试then命令序列fiif加空格加一个条件测试,如果这个条件测试结果为真那么就执行then后面的命令序列,这个命令序列可以是一条命令也可以是多条命令只要条件测试为真,.

    2022年8月18日
    5
  • C++函数模板与类模板的区别

    C++函数模板与类模板的区别类模板 C 除了支持函数模板 还支持类模板 ClassTemplat 函数模板中定义的类型参数可以用在函数声明和函数定义中 类模板中定义的类型参数可以用在类声明和类实现中 类模板的目的同样是将数据的类型参数化 声明类模板的语法为 template lt typename 类型参数 1 typename 类型参数 2 gt class 类名 nbsp nbsp TODO

    2025年11月15日
    2
  • 选择排序-Java「建议收藏」

    选择排序-Java「建议收藏」堆排序理论:https://blog.csdn.net/qq_36186690/article/details/82505569代码:packagecom.paixu.paixuTest;importjava.util.Arrays;importjava.util.Scanner;/***选择排序*1)简单选择排序*2)堆排序*/publicclassxuanZhePaiXu{publicstaticvoidmain(String[]a

    2022年7月8日
    24
  • 带小数的进制转换[通俗易懂]

    带小数的进制转换[通俗易懂]整数的进制转换方法相信大家应该都很清楚,但是大家有没有想过带小数的数据又该怎样进行进制的转换呢?下面就以二进制为例进行说明。1.带小数的二进制转换为十进制:例如二进制数1011.0111,在转换过

    2022年8月4日
    10
  • 磁盘显示没有初始化找到数据法子[通俗易懂]

    磁盘显示没有初始化找到数据法子[通俗易懂]没有初始化是因为分区表损坏了,导致移动硬盘出现没有初始化。磁盘显示没有初始化找到数据法子没有初始化是因为分区表损坏了,导致移动硬盘出现没有初始化。磁盘显示没有初始化找到数据法子工具/软件:光明数据恢复软件步骤1:程序打开后,直接双击需要恢复的物理盘,没有初始化需要从磁盘恢复文件。步骤2:坐等软件扫描完成一般需要几分钟到半个小时,稍微耐心等下即可。步骤3:打钩所有需要恢复的文件,然后点右上角的保存,《另存为》按钮,将打钩的文件拷贝出来。步骤4:最后一步只需要等程序将文件复制完成就可以了

    2022年9月21日
    6
  • Latex插入图片参数设置

    Latex插入图片参数设置常用选项[htbp]是浮动格式:『h』当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩的页面不够,这一参数将不起作用。『t』顶部。将图形放置在页面的顶部。『b』底部。将图形放置在页面的底部。『p』浮动页。将图形放置在一只允许有浮动对象的页面上。一般使用[htb]这样的组合,只用[h]是没有用的。这样组合的意思就是latex会尽量满足排在前面的浮动格式,就是h-t-b这个…

    2022年5月31日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号