本地样例全过,但是线上过不去,求助
查看原帖
本地样例全过,但是线上过不去,求助
588080
n_bluetea楼主2022/4/25 23:35
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<math.h>
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_DEPRECATE
#pragma warning(disable:4996)
using namespace std;

long long gcd(long long a,long long b)
{
	long long tool;
	while (b != 0)
	{
		tool = b;
		b = a % b;
		a = tool;
	}

	return a;
}//约分

long long math(long long n)
{
	long long len = 0;
	while (n)
	{
		len++;
		n = n / 10;
	}

	return len;
}//判断位数

long long max(int a,int b)
{
	if (a > b)
		return a;
	else
		return b;
}//放回最长的位数

int main()
{
	long long numerator = 1;
	long long denominator = 1;
	long long n;
	long long tool=0;
	while (scanf("%lld", &n) != EOF)
	{
		numerator = n;
		long long tep = n;

		for (int i = 2; i <= n; i++)
		{
			numerator = numerator * i + denominator * tep;
			denominator = denominator * i;
			tool = gcd(numerator, denominator);
			numerator = numerator / tool;
			denominator = denominator / tool;

		}
		


		

		long long len = 0;
		long long len1 = 0, len2 = 0, len3 = 0;
		long long integer;
		tool = denominator;
		if (denominator == 1)
		{
			printf("%lld", numerator);
		}
		else
		{
			integer = numerator / denominator;
			numerator -= integer * denominator;
			len1 = math(integer);
			len2 = math(denominator);
			len3 = math(numerator);
			len = max(len2, len3);
			for (int i = 0; i <= len1; i++)
			printf(" ");
				printf("%lld\n", numerator);
			printf("%lld ", integer);
			for (int i = 1; i <= len; i++)
				printf("-");
			printf("\n");
			for (int i = 0; i <= len1; i++)
				printf(" ");
			printf("%lld", denominator);
		}

		tep = 0;
		len=0,len1 = 0,len2=0,len3=0;
		numerator = 1;
		denominator = 1;
		tool = 0;
	}
	return 0;
}

2022/4/25 23:35
加载中...