22pts 求助##WA##
查看原帖
22pts 求助##WA##
500803
zzxzzxCCC楼主2024/8/23 22:45
#include <bits/stdc++.h>
using namespace std;

const int N = 100050;

int n, d;
int mod[N], cnt[N];

int main(){
	//freopen("data.in", "r", stdin);
	//freopen("data.out", "w", stdout);
	scanf("%d%d", &n, &d);
	printf("%d.", n / d);
	
	int t = n / d, length = 1;
	while (t != 0){
		length ++;
		t /= 10;
	} 
	
	n = n % d;
	
	int i = 0, j = 0;
	mod[i] = n, cnt[mod[i]] ++;
	while (1){
		mod[++ i] = mod[i - 1] * 10 % d, cnt[mod[i]] ++;
		if(mod[i] == 0){
			for(int j = 0; j < i; j ++)
				printf("%d", mod[j] * 10 / d);
			break;
		}
		
		if (cnt[mod[i]] == 2) {
			for (j = 0; j <= i && mod[j] != mod[i]; j ++){
				printf("%d", mod[j] * 10 / d), length++;
				
				if(length >= 76) printf("\n"); 
			}
				
			printf("(");
			for (int k = j; k < i; k ++){
				printf("%d", mod[k] * 10 / d), length++;
				
				if(length >= 76) printf("\n"); 
			}
			printf(")");
			
			break;
		}
	}
	return 0;
}
2024/8/23 22:45
加载中...