NYOJ-803 AB Problem

    xiaoxiao2021-04-16  47

    时间限制:1000 ms  |  内存限制:65535 KB

    难度:3

    输入

    每组测试样例一行,首先一个号码A,中间一个或多个空格,然后一个符号( / 或者 % ),然后又是空格,后面又是一个号码B,A可能会很长,B是一个int范围的数。

    输出

    输出结果。

    样例输入

    110 / 100 99 % 10 2147483647 / 2147483647 2147483646 % 2147483647

    样例输出

    1 9 1 2147483646

    这个题刚看到我其实不知道怎么写的,除法还好,但不知道怎么取余的,然后去网上看了看,才发现我想复杂了,也不算想复杂,只是没看到B是int类型的,(-__-)b,哎,最后说一句  写程序题,对于我们新手来说套路还是很重要的,多学习一些其他人的套路,是很有必要的。

    #include <stdio.h> #include <string.h> int main() { const int M=1000; char a[M]; char s; int b; while(~scanf("%s %c %d",a,&s,&b))//%s和%c之间必须有空格,没得话就会错 { int c[M]; memset(c,0,sizeof(c)); int len=strlen(a); if(s=='/') { int flag=0;//判断是否输出答案了,如果没输出答案,就代表A/B==0;这个很容易忘掉 int r=0; for(int i=0;i<len;i++) { r = r*10+a[i]-48;//写博客的时候差点忘了怎么写 c[i] = r/b; r %= b; } for(int i=0;i<len;i++) { if(c[i]) { flag=1; for(int j=i;j<len;j++) printf("%d",c[j]); printf("\n"); break; } } if(!flag) printf("0\n"); } else { int r=0; for(int i=0;i<len;i++) { r = r*10+a[i]-48; r %= b; } printf("%d\n",r); } } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-672451.html

    最新回复(0)