夏洛克


私信TA

用户名:SherlockObama

访问量:12535

签 名:

SherlockObama

等  级
排  名 1045
经  验 3173
参赛次数 0
文章发表 17
年  龄 0
在职情况 学生
学  校 湖北文理学院
专  业 计算机

  自我简介:

Go Go Go!!!

解题思路:    暴力法

注意事项:   别超时
参考代码:

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
    int n;
    cin>>n;
    int i,j,num=0;
    //外层控制第一个数
for(i=1;i<=4999;i++){
num=i;     //内层控制第二个数 经过分析,第二个数小于等于5000 
for(j=i+1;j<=5000;j++){
num+=j;
if(num==n) {
cout<<i<<" "<<j<<endl;
}
else continue;
}
} 
return 0;}
 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

前缀和+二分
#include <iostream>
using namespace std;
long long s[2000010], m; 

int main() {
	cin >> m;
	for (int i = 1; i < m; ++i) 
		s[i] = s[i - 1] + i;
	for (int i = 1; 2 * i < m; ++i) {
		int l = i + 1, r = m, mid;
		while (l <= r) {
			mid = (l + r) >> 1;
			if (s[mid] - s[i - 1] < m) l = mid + 1;
			else if (s[mid] - s[i - 1] > m) r = mid - 1;
			else {
				cout << i << " " << mid << endl;
				break;
			}
		}
	}
	cout << endl;
	return 0;
}
2020-11-25 09:46:02
非暴力解,py版 具体分析见我的题解
2020-04-02 13:17:01
n=int(input())
re=[]
for i in range(2,n):
    if i%2==0 and n/i==n//i+0.5 and n//i+1-(i//2)>0:  #偶数
        re.append([str(n//i+1-(i//2)),str(n//i+(i//2))])
    elif i%2==1 and n%i==0 and int(n/i)-i//2>0:       #奇数
        re.append([str(n//i-(i//2)),str(n//i+(i//2))])
    elif n//i+1-(i//2)<0 or int(n/i)-i//2<0:          #超界
        break
for i in re[::-1]:
    print(' '.join(i))
2020-04-02 13:16:19
#include<stdio.h>
int main()
{
	int i,j,o,k,m,sun=0;
	scanf("%d",&m);
for(i=1;i<10000;i++)
{sun=0;for(j=i;j<10000;j++)
{k=i;sun+=j;o=j;
if(sun<m)continue;if(sun==m&&o!=m)
{printf("%d %d \n",k,o);break;}if(sun>m)
break;}}
return 0;
}
2020-01-31 15:47:20
  • «
  • 1
  • »