超时了,求助怎么改进!(萌新代码很幼稚,见谅Q_Q)
查看原帖
超时了,求助怎么改进!(萌新代码很幼稚,见谅Q_Q)
604180
csu_Ryan楼主2021/11/1 22:12
#include <stdio.h>
int main() {
	long int N,line=0,n=1,most=0,i=1,a,zi,mu;
	//N是第几项,
	//line是斜着看的第几行,
	//n是用来判断N在第几行的,
	//most是该行最大的项的编号,
	//i是用来算most的,
	//a是用来算N与most之间的距离,
	//zi是分子,mu是分母
	scanf_s("%d", &N);
	//先找第几行
	for (; line != n; n++) {
		if ((n * (n - 1)) / 2 < N <= (n * (n + 1)) / 2) {
			line = n;
		}
		else {
			continue;
		}
	}
	//再算most的大小
	while (i <= line) {
		most += i;
			i++;
	}
	//算N与most之间的距离
	a = most - N;
	//判断奇偶行,决定分子分母的取值
	if (line % 2 != 0) {
		zi = a + 1;
		mu = line - a;
	}
	else {
		zi = line - a;
		mu = a + 1;
	}
	printf("%d/%d\n", zi, mu);
	return 0;
	
}
2021/11/1 22:12
加载中...