提交记录 14469


用户 题目 状态 得分 用时 内存 语言 代码长度
SPFA 1005a. 【模板题】高精度除法 Time Limit Exceeded 0 1 s 156 KB C++ 990 B
提交时间 评测时间
2020-10-04 18:21:47 2020-10-04 18:21:49
#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;

#define MAXN 20000

int a[MAXN],b[MAXN],c[MAXN];
char stra[MAXN],strb[MAXN];
int lena,lenb,lenc,ans;

void read(void){
	cin >> stra >> strb;
	lena = strlen(stra);
	lenb = strlen(strb);
	for(int i=0;i<lena;i++) a[lena-i] = stra[i]-'0';
	for(int i=0;i<lenb;i++) b[lenb-i] = strb[i]-'0';
}

int judge(int *a, int *b){
	if(!a[1] || !b[1]) return 1;
	if(lena < lenb) return 1;
	for(int i=lena;i>0;i--){
		if(a[i] > b[i]) return 0;
		if(a[i] < b[i]) return 1;
	}
	return 0;
}

void sub(int *a, int *b){
	lenc = max(lena,lenb);
	for(int i=1;i<=lenc;i++){
		if(a[i] < b[i]){
			a[i+1]--;
			a[i] += 10;
		}
		c[i] = a[i]-b[i];
	}
	while(c[lenc]==0 && lenc>1) lenc--;
}

void div(int *a, int *b){
	while(!judge(a,b)){
		sub(a,b);
		ans++;
		for(int i=1;i<=lenc;i++){
			a[i] = c[i];
		}
		lenb = lenc;
	}
}

int main(void)
{
	read();
	if(judge(a,b)){
		cout << "0";
		return 0;
	}
	div(a,b);
	cout << ans;
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #11 s156 KBTime Limit ExceededScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-22 11:13:54 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠