sysugz


私信TA

用户名:qq512620936

访问量:10856

签 名:

学渣到此一游~

等  级
排  名 815
经  验 2210
参赛次数 0
文章发表 16
年  龄 0
在职情况 学生
学  校 中山大学
专  业

  自我简介:

TA的其他文章

宏定义
浏览:583

浏览:453
转化为字符数组
浏览:682

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

  评论区