南阳oj-803(除数问题)

A/B Problem

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

难度:3

输入

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

输出

输出结果。

样例输入

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

样例输出

1
9
1
2147483646

描述

 做了A+B Problem,A/B Problem不是什么问题了吧!

#include<stdio.h>
#include<string.h>
int main()
{
	char a[1000],b;
	int c,lena,i,k,t,yu,count,flag;
	while(scanf("%s %c %d",a,&b,&c)!=EOF)
	{
		k=0;yu=0;t=0;count=0;flag=0;
		lena=strlen(a);
		if(b=='/')
		{
		
		for(i=0;i<lena;i++)
		{
			k=(a[i]-'0')+yu*10;//从个位除,除不尽 从十位除 依次递推下去 
			t=k/c;
			yu=k%c;
			if(t||t==0&&flag)
			{
				printf("%d",t);
			}
			if(t)
			flag=1;
			if(!t)
			{
				count++;
			}
			if(count==lena)
			printf("0\n");
		}
		printf("\n");
    	}
    	
    	
    	if(b=='%')
    	{
    		for(i=0;i<lena;i++)
    		{
    			k=(a[i]-'0')+yu*10;
		    	t=k/c;
		    	yu=k%c;
			}
			printf("%d\n",yu);
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/foolishpichao/article/details/81912026