#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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论