YTU 2543: 数字整除
2543: 数字整除
时间限制: 1 Sec 内存限制: 128 MB
提交: 33 解决: 8
题目描述
定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的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
迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……
#include<stdio.h>
#include<string.h>
int main()
{
int a,i;
char s[105];
while(scanf("%s",s))
{
int b=0,g=0,j=0;
if(s[0]=='0')break;
a=strlen(s);
if(a>=4)
{
for(i=a-4; i<a-1; i++)
g=g*10+s[i]-'0';
g=g-(s[a-1]-'0')*5;
for(i=0; i<a-4; i++)
b=(s[i]-'0'+b*10)%17;
b=b*1000;
b=(b+g)%17;
if(b==0)printf("1\n");
else printf("0\n");
}
else
{
if(a==1)printf("0\n");
else
{
if(a==2)
{
g=(s[0]-'0')-(s[1]-'0')*5;
if(g<0) g=-g;
if(g%17==0)printf("1\n");
else printf("0\n");
}
if(a==3)
{
g=(s[1]-'0')-(s[2]-'0')*5+(s[0]-'0')*10;
if(g<0)g=-g;
if(g%17==0)printf("1\n");
else printf("0\n");
}
}
}
j++;
if(j==10)break;
}
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
int a,i;
char s[105];
while(scanf("%s",s))
{
int b=0,g=0,j=0;
if(s[0]=='0')break;
a=strlen(s);
if(a>=4)
{
for(i=a-4; i<a-1; i++)
g=g*10+s[i]-'0';
g=g-(s[a-1]-'0')*5;
for(i=0; i<a-4; i++)
b=(s[i]-'0'+b*10)%17;
b=b*1000;
b=(b+g)%17;
if(b==0)printf("1\n");
else printf("0\n");
}
else
{
if(a==1)printf("0\n");
else
{
if(a==2)
{
g=(s[0]-'0')-(s[1]-'0')*5;
if(g<0) g=-g;
if(g%17==0)printf("1\n");
else printf("0\n");
}
if(a==3)
{
g=(s[1]-'0')-(s[2]-'0')*5+(s[0]-'0')*10;
if(g<0)g=-g;
if(g%17==0)printf("1\n");
else printf("0\n");
}
}
}
j++;
if(j==10)break;
}
return 0;
}
YTU 2543: 数字整除的更多相关文章
- YTU 2851: 数字游戏
2851: 数字游戏 时间限制: 1 Sec 内存限制: 128 MB 提交: 164 解决: 85 题目描述 输入若干个正整数,将其中能写成其它两个正整数的平方和的数输出来. 例,若输入的数中有 ...
- 求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法
今天面试,遇到面试官询求最大公约数.小学就学过的奥数题,居然忘了!只好回答分解质因数再求解! 回来果断复习下,常用方法辗转相除法和更相减损法,小学奥数都学过,很简单,就不细说了,忘了的话可以百度:ht ...
- js-FCC算法Smallest Common Multiple。找出两个参数和它们之间的连续数字的最小公倍数。
存档. 找出能被两个给定参数和它们之间的连续数字整除的最小公倍数. function smallestCommons(arr) { //分解质因数法,分解为若干个质数相乘 var arrratio=[ ...
- BZOJ 1853 幸运数字(容斥原理+dfs)
题意:求闭区间内能被6和8组成的数字整除的数目.n<=1e11. 我们可以预处理出这些6和8组成的数字,大概2500个,然后排除一些如88,66的情况.这样大概还剩下1000个. 转化为[0,r ...
- nyoj-664-数字整除(水题)
数字整除 时间限制:1000 ms | 内存限制:65535 KB 难度: 描写叙述 定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍.当且仅当差是17的倍数时.原数也是 ...
- Smallest Common Multiple
FCC题目:找出能被两个给定参数和它们之间的连续数字整除的最小公倍数. 范围是两个数字构成的数组,两个数字不一定按数字顺序排序. 例如对 1 和 3 -- 找出能被 1 和 3 和它们之间所有数字整除 ...
- uva1635
/* 哑元 组合数的递推整除判断_________________________________________________________________________________ #i ...
- fcc的中级算法题
核心提示:这是网上开源编程学习项目FCC的javascript中级编程题(Intermediate Algorithm Scripting(50 hours)),一共20题.建议时间是50个小时,对于 ...
- [codeforces 55]D. Beautiful numbers
[codeforces 55]D. Beautiful numbers 试题描述 Volodya is an odd boy and his taste is strange as well. It ...
随机推荐
- MySQL异常:Caused by: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client request
Caused by: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or cl ...
- buf.swap16()
buf.swap16() 返回:{Buffer} 将 Buffer 解释执行为一个16位的无符号整数数组并以字节顺序交换到位.如果 Buffer 的长度不是16位的倍数,则抛出一个 RangeErro ...
- winform ComboBox/TextBox自动提示
ComboBox和TextBox控件都带有自动前缀匹配,只要设置其中的AutoCompleteMode,AutoCompleteSource,AutoCompleteCustomSource三个属性的 ...
- virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenvwrapper.........(解决办法)
Linux(ubuntu)上python2与python3共存环境下,安装virtualenvwrapper后, 其环境变量被自动设置为VIRTUALENVWRAPPER_PYTHON=/usr/bi ...
- Spring Boot 2(一):【重磅】Spring Boot 2.0权威发布
就在今天Spring Boot2.0.0.RELEASE正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误, ...
- C语言的移位操作符及位运算
C语言的移位操作符 位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算.位移位运算符分为左移和右移两种,均为双目运算符.第一运算对象是移位对象,第二个运算对象是所移的二进制位数. 位 ...
- 洛谷 1197 [JSOI2008]星球大战
[题解] 把询问离线,倒着加点,并查集维护连通性即可. #include<cstdio> #include<cstring> #include<algorithm> ...
- UVa 11998 破碎的键盘(数组实现链表)
题意: 输入一行字符,其中包含'[' 和 ‘]’, 意思为键盘上的home 和 end 键, 然后模拟字符在键盘上输入. 输入一行最终的结果 分析: 用数组模拟一个链表, 在链表的头尾插入字母然后输出 ...
- c++中的string常用函数用法总结!
标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作 ...
- HDU 3749 Financial Crisis(点-双连通分量)
Because of the financial crisis, a large number of enterprises go bankrupt. In addition to this, oth ...