#include<stdio.h>
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main()
{
char num[110],ge[2]; //存储测试数据
int L,I; //测试数据位数
int i,j,k,m,n;
int ge5,test;
gets(num);
while(num[0] != '0')
{
L = strlen(num);
I = L -3;
if(L > 3)
{
for(i=0;i<I;i++)
{
if(num[L-1-i] == '0') //如果个位数是0,直接去掉
{
continue;
}
ge5 = (num[L-1-i] - '0') * 5; //个位数的5倍
ge[0] = '0' + ge5 / 10; //十位数
ge[1] = '0' + ge5 % 10; //个位数
//下面计算num减去ge的差
/*** 个位相减 ***/
if(num[L-2-i] < ge[1]) //如果需要借位
{
j = L-3-i;
k = j;
while(num[j] == 0)
{
j--;
}
num[j]--; //高位减1
j++;
for(;j<=k;j++)
num[j] += 9;
num[L-2-i] = num[L-2-i] + 10 - ge[1]+'0'; //个位相减
}
else
num[L-2-i] = num[L-2-i] - ge[1]+'0';
/*** 十位相减 ***/
if(num[L-3-i] < ge[0])
{
j = L-4-i;
k = j;
while(num[j] == 0)
{
j--;
}
num[j]--; //高位减1
j++;
for(;j<=k;j++)
num[j] += 9;
num[L-3-i] = num[L-3-i] + 10 - ge[0]+'0'; //个位相减
}
else
num[L-3-i] = num[L-3-i] - ge[0]+'0';
// for(j=0;j<10;j++)
// printf("%c",num[j]);
// printf("\n");
}
L = 3;
}
switch(L)
{
case 1:
test = num[0] - '0';
break;
case 2:
test = (num[0] - '0') * 10 + (num[1] - '0');
break;
case 3:
test = (num[0] - '0') * 10 + (num[1] - '0');
test = test - (num[2]-'0')*5;
break;
}
printf("%d\n",test % 17 == 0);
gets(num);
}
return 0;
}
0.0分
0 人评分
点我有惊喜!你懂得!浏览:1643 |
C语言程序设计教程(第三版)课后习题8.3 (Java代码)浏览:1287 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:521 |
钟神赛车 (C++代码)浏览:591 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:341 |
【绝对值排序】 (C语言代码)浏览:596 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:495 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:465 |
printf基础练习2 (C语言代码)浏览:600 |
母牛的故事 (C语言代码)浏览:1294 |