教你夺冠


私信TA

用户名:835685327

访问量:156776

签 名:

相互交流 相互学习

等  级
排  名 15
经  验 22543
参赛次数 0
文章发表 84
年  龄 0
在职情况 学生
学  校 辣鸡施工大学
专  业

  自我简介:

努力刷题 熟能生巧!

一般的整数其实很好进行处理,但是那个大数我是真没想到啥好办法。参考了一下另一位同学的办法,虽然还是没能理解这个原理。。还是得花时间琢磨琢磨。


另外一个小知识:

1) 一个字符ch要转化为数字时,应该用这个字符减去'0'。  ch  - '0'

2) 一个数字num要转化为字符时,应该用这个数字加上'0'。 num + '0'


参考代码如下:

#include <stdio.h>

int main()
{
    int result[10]; //用来存放输出结果的
    int x = 0;
    
    int i = 0;
    int j = 0;

    char ch;
    scanf("%c", &ch);
    do
    {
        while (ch != '\n')
        {
            x *= 10;
            x += ch - '0'; //注意所有数字都是以字符形式读入,因此进行运算前需要进行 ch - '0' 操作
            x %= 17;
            scanf("%c", &ch);
        }

        if (x == 0)
        {
            result[i++] = 1;
        }
        else
        {
            result[i++] = 0;
        }

        x = 0;
        scanf("%c", &ch);

    } while (ch != '0'); //输入的第一个字符不为'0',为'0'时退出

    for(j = 0; j < i; j++)
    {
        printf("%d\n", result[j]);
    }

    return 0;
}


 

0.0分

27 人评分

  评论区

很可以,将过程转换成了就是平时数学的除法运算
2018-12-23 13:30:17
很好奇,去掉个位数就必须要转换成字符?不可以/10么??
2018-08-16 16:42:25
你这样子写是没有灵魂的~(虽然不合题意,但是能解决问题很漂亮)
2018-04-12 21:15:07