nyoj-664-数字整除(水题)

数字整除

时间限制:1000 ms  |  内存限制:65535 KB

难度:2

描写叙述

定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时。原数也是17的倍数 。

比如,34是17的倍数,由于3-20=-17是17的倍数;201不是17的倍数。由于20-5=15不是17的倍数。

输入一个正整数n,你的任务是推断它是否是17的倍数。

输入
输入文件最多包括10组測试数据,每一个数据占一行,仅包括一个正整数n(1<=n<=10^100),表示待推断的正整数。

n=0表示输入结束,你的程序不应当处理这一行。

输出
对于每组測试数据,输出一行,表示对应的n是否是17的倍数。1表示是,0表示否。

例子输入
34201209876541317171717171717171717171717171717171717171717171717180
例子输出
1010

解题思路:

给定的定理太麻烦。我不知道怎么用,题目要求的是推断n是不是17的倍数,既然这样。直接用原始的方法就好了。

我用的就是模拟数学法。将小学时学会的数学除法用代码模拟处理其过程,应该注意的是循环结束不代表计算结束。now还差一步运算。

代码

#include<stdio.h>
#include<string.h>
char s[110];
int main()
{
	int i,j;
	int len,now;
	while(scanf("%s",s)&&strcmp(s,"0")!=0)
	{
		len=strlen(s);
		now=0;
		for(i=0;i<len;i++)
		{
			if(now<17)
			    now=now*10+s[i]-'0';
			else
			{
				now%=17;
				now=now*10+s[i]-'0';
			}
		}//模拟数学除法运算
		if(now%17==0)
		//循环结束不代表计算结束。now还有值
		    printf("1\n");
		else
		    printf("0\n");
	}
	return 0;
}
时间: 2024-10-22 12:01:41

nyoj-664-数字整除(水题)的相关文章

NYOJ 664 数字整除

#include<stdio.h>#include<string.h>int main(){ char s[1000]; while(scanf("%s",s) && strcmp(s,"0")) { int i,sum=0; for(i=0;s[i]!='\0';i++) sum=(sum*10+(s[i]-48)) % 17; if(sum==0) printf("1\n"); else printf(

HDU1172 猜数字【水题】

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1172 题目大意: 计算机随机产生一个四位数,然后玩家去猜这个四位数,每次猜测,计算机都会告诉 你猜对了几个数字,有几个数字在正确的位置上.现在给你N组猜测的结果,那么问 题来了:能否根据这几组猜测的结果去确定这个四位数是多少.如果能确定,输出这 个四位数.如果不能确定,输出:"Not sure". 思路: 只是四位数的话,暴力枚举就可以了.找到满足这几组猜测结果的四位数.如果只有 1个,

HDU2178 猜数字【水题】【推理】

猜数字 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3666    Accepted Submission(s): 2620 Problem Description A有1数m,B来猜.B每猜一次,A就说"太大","太小"或"对了" . 问B猜n次可以猜到的最大数. Input 第1

nyoj 218 Dinner(水题)

Dinner 时间限制:100 ms  |  内存限制:65535 KB 难度:1 描述 Little A is one member of ACM team. He had just won the gold in World Final. To celebrate, he decided to invite all to have one meal. As bowl, knife and other tableware is not enough in the kitchen, Little

nyoj 94 cigarettes 【水题】

cigarettes 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 Tom has many cigarettes. We hypothesized that he has n cigarettes and smokes them one by one keeping all the butts. Out of k > 1 butts he can roll a new cigarette. Now,do you know how many cigarettes

nyoj 1099 Lan Xiang&#39;s Square (水题)

题目1099 题目信息 运行结果 本题排行 讨论区 Lan Xiang's Square 时间限制:1000 ms  |  内存限制:65535 KB 难度:0 描述 Excavator technology which is strong, fast to Shandong to find Lan Xiang. Then the question comes.. :) for this problem , i will give you four points. you just judge

湖南省第6届程序大赛第3题 数字整除

题目C 数字整除 定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍.当且仅当差是17的倍数时,原数也是17的倍数 . 例如,34是17的倍数,因为3-20=-17是17的倍数:201不是17的倍数,因为20-5=15不是17的倍数.输入一个正整数n,你的任务是判断它是否是17的倍数. 输入 输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=10100),表示待判断的正整数.n=0表示输入结束,你的程序不应当处理这一行. 输出 对于每组测试

nyoj 1208——水题系列——————【dp】

水题系列 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述     给你一个有向图,每条边都有一定的权值,现在让你从图中的任意一点出发,每次走的边的权值必须必上一次的权值大的情况下,问你最多能走几条边? 输入 首先一个n和m,分别表示点的数目和边的数目接下来m行,每行三个值x,y,val,表示x到y有路,其权值为val.(1<n,m,val<10^5,0<x,y<=n) 输出 输出最多有的边的数目 样例输入 3 3 1 2 1 2 3 1 3 1 1 6

JAVA 水题

纯粹是让我来掌握熟练度的. 1.金蝉素数 某古寺的一块石碑上依稀刻有一些神秘的自然数. 专家研究发现:这些数是由1,3,5,7,9 这5 个奇数字排列组成的5 位素数,且同时去掉它的最高位与最低位数字后的三位数还是素数,同时去掉它的高二位与低二位数字后的一位数还是素数.因此,人们把这些神秘的素数称为金蝉素数,喻意金蝉脱壳之后仍为美丽的金蝉. 输出所有金蝉素数. ANSWER: 13597 53791 79531 91573 95713 package test; import java.util