- UID
- 205569
- 在线时间
- 0 小时
- 最后登录
- 2015-6-3
- 注册时间
- 2012-8-25
- 宅魂
- 2820 点
- 贡献
- 299 点
- 宅币
- 17268 枚
- 灵石
- 0 块
- 元气(技能点)
- 34 点
- 活跃
- 0 ℃
- 听众
- 9
- 收听
- 1
该用户从未签到
技术宅认证程序员
重度中二患者
- 积分
- 28325
|
发表于 2013-3-26 15:20:46
|
显示全部楼层
本帖最后由 foodszhu 于 2013-3-26 15:39 编辑
写了一个。。。不知道对错。。。不过估计错的会跟你一样啊。。
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int add(char s[], int t)
{
int len = strlen(s);
s[len - 1] -= t % 10;
if(s[len - 1] < 48)
{
s[len - 1] += 10;
s[len - 2]--;
}
s[len - 2] -= t / 10;
for(int i = len - 2; i > 0; i--)
{
if(s < 48)
{
s += 10;
s[i - 1]--;
}
else
{
break;
}
}
}
int main(int argc, char *atgv[])
{
char s[100] = {0};
scanf("%s", s);
while(s[0] != '0')
{
int len = strlen(s);
while(len > 3)
{
int t = s[len - 1] - 48;
s[len - 1] = 0;
t = t * 5 % 17;
add(s, t);
len = strlen(s);
}
printf("%d\n", atoi(s) % 17 == 0 ? 1 : 0);
memset(s, 0, sizeof(s));
scanf("%s", s);
}
}[/mw_shl_code] |
|