LINUX 下gets的 /r问题 北师大OJ Number theory

来源:互联网 发布:命理探源知乎 编辑:程序博客网 时间:2024/05/01 03:16
Number theoryTime Limit: 1000msMemory Limit: 65536KB64-bit integer IO format: %lld      Java class name: MainPrevSubmitStatusStatisticsDiscussNextFont Size: +-Type: Tag it!数学不仅是简单而且是美的。数学很有趣,但是数学中也有很多难题,比如哥德巴赫猜想、各种欧拉定理、拉格朗日中值定理、费马定理等。今天小若遇到了一道题目:给一个9进制数,求出这个数模8的余数。小若苦思冥想很久也没有想出结果,聪明的你快来帮助小若若吧!Input输入每行有一串数字(保证数字长度不超过107),有多组测试数据。以0结束输入。Output对应于每组输入,首先输出数据编号(如样例所示),输出答案即可。Sample Input18836870Sample OutputCase 1: 1Case 2: 0Source2013年北京师范大学新生程序设计竞赛Authorzpk

来源: http://www.bnuoj.com/bnuoj/problem_show.php?pid=34055

#include <cstdio>#include <cstring>char A[10000001];int main(void){    int count=0;    while(scanf("%s",A)!=EOF)    //用gets不对    Linux 下会为\r\n    {        count++;        if(A[0]=='0') break;        int len=strlen(A);        int value=0;        for(int i=0;i<len;i++) value=((A[i]-'0')%8+(value*9)%8)%8;        printf("Case %d: %d\n",count,value);    }    return 0;}
WA:#include <cstdio>int main(void){    char c=0;    int count=0,value=0,now,flag=0;    while(c=getchar())    {        if(!flag&&c=='0') break;        if(c=='\n') Linux 下会为\r\n        {            flag=0;            printf("Case %d: %d\n",++count,value);            value=0;        }        else        {            flag=1;            now=c-'0';            value=((value*9)%8+now%8)%8;        }    }    return 0;}

来源: http://www.bnuoj.com/bnuoj/status.php

0 0
原创粉丝点击