为什么只过了第二个,我看了下第一个他给我运行好的结果是和我运行相反的为什么?
查看原帖
为什么只过了第二个,我看了下第一个他给我运行好的结果是和我运行相反的为什么?
1092210
xxxsss楼主2024/3/16 10:11
#include <iostream>
#include<cmath>
using namespace std;

int main()
{
	int n;
	cin >> n;
	int min = 0, max = 0;        
	min = (-1+sqrt((1+8*n)))/2;  //前n行的和为n(n+1)/2
	max = min + 1;               //判断数的大致位置
	if (n - (min + 1) * min / 2>0) {  //大于0在max行
		n -= (min + 1) * min / 2;
		n--;
		cout << 1 + n << '/' << max - n << endl;
	}
	else {
		n -= min * (min-1) / 2;   
		n--;
		cout << 1 + n << '/' << min - n << endl;
	}
	return 0;
}
2024/3/16 10:11
加载中...