解题思路: 暴力法
注意事项: 别超时
参考代码:
#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 人评分
前缀和+二分 #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; }
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))
#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; }
【出圈】 (C语言代码)浏览:796 |
用筛法求之N内的素数。 (C语言代码)浏览:1262 |
printf基础练习2 (C语言代码)浏览:745 |
WU-判定字符位置 (C++代码)浏览:1407 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:609 |
罗列完美数 (C语言代码)浏览:491 |
sizeof的大作用 (C语言代码)浏览:1028 |
矩形面积交 (C语言代码)浏览:1314 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:721 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:393 |