1017. A除以B (20) (数学啊 ZJU_PAT)

题目链接:http://www.patest.cn/contests/pat-b-practise/1017

本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。

输入格式:

输入在1行中依次给出A和B,中间以1空格分隔。

输出格式:

在1行中依次输出Q和R,中间以1空格分隔。

输入样例:

123456789050987654321 7

输出样例:

17636684150141093474 3

代码如下:

#include <cstdio>
#include <cstring>
const int maxn = 1117;
int main()
{
	char a[maxn];
	int b, c[maxn];
	scanf("%s",a);
	scanf("%d",&b);
	if(b == 0)
	{
		printf("0 %s\n",a);
		return 0;
	}
	int i;
	int len = strlen(a);
	int tt = 0;
	int flag = 0;
	int l = 0;
	for(i = 0; i < len; i++)
	{
		tt = tt*10+(a[i]-'0');
		c[l++] = tt/b;
		tt = tt%b;
	}
	int mark = 0;
	for(i = 0; i < l; i++)
	{
		if(flag == 0 && c[i]==0)//前导零
		{
			continue;
		}
		else
		{
			flag = 1;
		}
		mark = 1;
		printf("%d",c[i]);
	}
	if(!mark)//a < b
		printf("0");
	printf(" %d\n",tt);
	return 0;
}
时间: 2024-10-22 13:18:00

1017. A除以B (20) (数学啊 ZJU_PAT)的相关文章

PAT乙级 1017. A除以B (20)

1017. A除以B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格式: 在1行中依次输出Q和R,中间以1空格分隔. 输入样例: 123456789050987654321 7 输出样例: 176366

PAT 乙级 1017 A除以B (20) C++版

1017. A除以B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格式: 在1行中依次输出Q和R,中间以1空格分隔. 输入样例: 123456789050987654321 7 输出样例: 176366

1017. A除以B (20)(此题转载)

1017. A除以B (20) 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格式: 在1行中依次输出Q和R,中间以1空格分隔. 输入样例: 123456789050987654321 7 输出样例: 17636684150141093474 3 思路:解决手工除法的步骤,对字符串进行处理 #include <iostream> #includ

Programming Ability Test学习 1017. A除以B (20)

1017. A除以B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格式: 在1行中依次输出Q和R,中间以1空格分隔. 输入样例: 123456789050987654321 7 输出样例: 176366

1017. A除以B (20)

本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格式: 在1行中依次输出Q和R,中间以1空格分隔. 输入样例: 123456789050987654321 7 输出样例: 17636684150141093474 3 1 #include <stdio.h> 2 #include <string.h> 3 int main(){ 4

PAT 1017. A除以B (20)

本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格式: 在1行中依次输出Q和R,中间以1空格分隔. 输入样例: 123456789050987654321 7 输出样例: 17636684150141093474 3 这道题找了老半天的错,在本机调试多个答案都正确,但提交后却都不对,最后发现是temp没有赋初值0.以后得多加注意 1 #includ

PAT (Basic Level) Practise:1017. A除以B (20)

[题目链接] 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格式: 在1行中依次输出Q和R,中间以1空格分隔. 输入样例: 123456789050987654321 7 输出样例: 17636684150141093474 3 提交代码: 1 #include <stdio.h> 2 #include <string.h> 3 4

PAT:1017. A除以B (20) AC

#include<stdio.h> #include<string.h> char n[1010]; //暂存输入的大整数字符串 int num[1010]; //暂存可以运算的各位数字 int cnt=0; //记录数字个数 int chu; //除数 int main() { scanf("%s %d",n,&chu); cnt=strlen(n); int yushu=0; //本位不够除的时候,后位想此位借位 for(int i=0 ; i<

B.1017 A除以B (20)

#include<stdio.h> #include<string.h> struct bign { int d[1010], len; bign() { memset(d, 0, sizeof(d)); len = 0; } }; bign change(char str[]) { bign a; a.len = strlen(str); for (int i = 0; i < a.len; i++) { a.d[i] = str[a.len - i - 1] - '0';