⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3039.txt

📁 北大ACM题目例程 详细的解答过程 程序实现 算法分析
💻 TXT
字号:
Problem Id:3039  User Id:fzk 
Memory:60K  Time:431MS
Language:C++  Result:Accepted

Source 

#include <stdio.h>
#include <math.h>
int gcd( int a, int b ) {
	int t;
	while( b % a ) {
		t = a;
		a = b%a;
		b = t;
	}
	return a;
}

int main() {
	int n, k, i, j, bi, bj;
	double s, best = 999999999;
	scanf( "%d%d", &n, &k );
	//n/k = j/i
	s = 1.0*n/k;
	for( i=1; i<=32767; i++ ) 
	if( i != k ) {
		j = int(i*s+1e-7);
		while( j > 0 && gcd( j, i ) != 1 )
			j--;

		if( j > 0 && fabs( j*1.0/i - s ) < best )
			bi = i, bj = j, best = fabs( j*1.0/i - s );

		j = int(i*s+1e-7) + 1;
		while( j < i && gcd( j, i ) != 1 )
			j++;

		if( j <= 32767 && fabs( j*1.0/i - s ) < best )
			bi = i, bj = j, best = fabs( j*1.0/i - s );
	}

	printf( "%d %d\n", bj, bi );
	return 0;
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -