OJ题目--数字整除

来源:互联网 发布:陕西广电网络是国企嘛 编辑:程序博客网 时间:2024/05/16 14:03

这是公司OJ上的一道水题,尽管水,但是还是提交了几次才过,这里跟大家分享下几个易错点。先看题目

题目

输入

输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=10^100),表示待判断的正整数。n=0表示输入结束,你的程序不应当处理这一行

输出

对于每组测试数据,输出一行,表示相应的n是否是17的倍数。1表示是,0表示否。

样例输入

34201209876541317171717171717171717171717171717171717171717171717180

样例输出

1010

代码

#include <stdio.h>#include <string.h>int main(void){    char test[102] = {0};    int i=0;    int j=0;    int tmp = 0;    while((scanf("%s",test)) && (test[0]!='0'))    {        //每次进入循环都要给tmp重新赋值为0。        //一直AC不过,就是这里没有考虑到.....        tmp = 0;        j++;        if((strlen(test)<2)||(j>10))            break;        for(i=0;i<strlen(test);i++)        {            //for循环里的过程是模拟整除的过程。自己拿纸验算一遍就可以得出结论            //这里需要减个'0',才能得到真实值            tmp = tmp*10+(test[i]-'0');            tmp = tmp%17;        }        if(tmp == 0)        {            printf("1\n");        }        else        {            printf("0\n");        }    }    return 0;}

最后如有错误欢迎大家指出,共同进步!

原创粉丝点击