首页 > 代码库 > NYOJ-A/B Problem
NYOJ-A/B Problem
A/B Problem
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
做了A+B Problem,A/B Problem不是什么问题了吧!
- 输入
- 每组测试样例一行,首先一个号码A,中间一个或多个空格,然后一个符号( / 或者 % ),然后又是空格,后面又是一个号码B,A可能会很长,B是一个int范围的数。
- 输出
- 输出结果。
- 样例输入
110 / 100 99 % 10 2147483647 / 2147483647 2147483646 % 2147483647
- 样例输出
1 9 1 2147483646
- 代码:
#include<stdio.h> #include<string.h> char a[10010]; //为避免错误,数组最好开大点,刚开始开到1000010 int sum[10010]; int main() { char ch; int i,j,t,B,len; while(~scanf("%s",a)) { while(1) { ch=getchar(); if(ch=='/'||ch=='%') break; } scanf("%d",&B); memset(sum,0,sizeof(sum)); t=0;i=0;j=0;len=strlen(a); while(i<len) { t=t*10+a[i++]-'0'; if(t==0) sum[j++]=0; else if(j!=0) { //printf("***\n"); sum[j++]=t/B; t=t%B; } else if(t>=B) //控制商的最高位不为0 { sum[j++]=t/B; t%=B; } } if(ch=='%') { printf("%d\n",t%B); continue; } for(i=0;i<j-1;++i) if(sum[i]) break; for(;i<j;++i) printf("%d",sum[i]); printf("\n"); } return 0; }
终于能过了!!!!!!!!!!!!!!
一些特殊测试数据:
1000 / 1=1000;
10100 / 2=50500;
NYOJ-A/B Problem
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。