2025年山东大学计算机考研复试机试真题
2025年山东大学计算机考研复试上机真题
历年山东大学计算机考研复试上机真题
历年山东大学计算机考研复试机试真题
更多学校题目开源地址:https://gitcode.com/verticallimit1/noobdream
N 诺 DreamJudge 题库:输入 “学校名称” 即可筛选该校历年机试真题,题目均在考纲范围内,按难度自动排序。还可搭配《计算机考研机试攻略》刷题,书中题目可通过题号直接在题库中查找。
整数序列
题目描述
Time Limit: 1000 ms
Memory Limit: 256 mb
很多整数可以由一连串的整数序列相加而成,比如25=3+4+5+6+7=12+13,输入一个整数N,输出N的全部整数序列,如果没有输出"NONE”。2<=n<=1e7
输入输出格式
输入描述:
见样例
输出描述:
见样例
输入输出样例
输入样例#:
25
输出样例#:
3 4 5 6 7 12 13
代码一
- #include<bits/stdc++.h>
- using namespace std;
- bool Compare(vector<int>& l,vector<int>& r){
- return l[0] < r[0];
- }
- int main() {
- long long n;
- while(cin >>n){
- int flag = 0;
- vector<vector<int> > ans;
- for(long long i = 1;i <n;i++){
- if((n - (i*(i-1)) / 2) % i == 0){
- long long a = (n - (i*(i-1)) / 2 ) / i;
- if(a >0){
- if(a == n) continue;
- vector<int> v;
- for(long j = a; j <= a + i -1;j++){
- flag =1;
- v.push_back(j);
- }
- ans.push_back(v);
- }
- }
- }
- sort(ans.begin(),ans.end(),Compare);
- for(int i= 0;i<ans.size();i++){
- for(int j = 0;j < ans[i].size();j++){
- cout<<ans[i][j]<<" ";
- }
- cout<<endl;
- }
- if(flag == 0) cout<<"NONE"<<endl;
- }
- return 0;
- }
代码二
- #include<iostream>
- #include<cmath>
- using namespace std;
- int main()
- { int n;cin>>n;int flag=0;int temp;
- if(n==2) {
- cout<<"NONE"<<endl;
- return 0;
- }
- for(int i=sqrt(5*n);i>=2;i--)
- {
- if(i%2==1&&n%i==0)
- {
- temp=n/i;
- if(temp-i/2>=0)
- {for(int k=temp-i/2;k<=temp+i/2;k++)
- cout<<k<<' ';
- cout<<endl;
- flag=1;
- }
- }
- if(i%2==0&&(n-i/2)%i==0)
- { temp=(n-i/2)/i;
- if(temp-(i/2)+1>=0)
- {
- for(int k=temp-(i/2)+1;k<=temp+i/2;k++)
- {
- cout<<k<<' ';
- }
- cout<<endl;
- flag=1;
- }
- }
- }
- if(!flag) cout<<"NONE"<<endl;
- return 0;
- }
代码三
- #include<bits/stdc++.h>
- using namespace std;
- int main()
- {
- long long n;
- cin>>n;
- long long flag=0;
- for(long long i=1;i<=n/2;i++)// 枚举a1
- {
- // 二分an
- long long l=i+1,r=n/2+1;
- while(l<r)
- {
- long long mid=l+r+1>>1;
- long long x=(i+mid)*(mid-i+1)/2;
- if(x<=n) l=mid;
- else r=mid-1;
- }
- if((i+r)*(r-i+1)/2==n)
- {
- for(long long j=i;j<=r;j++) cout<<j<<" ";
- cout<<endl;
- flag=1;
- }
- }
- if(flag==0) cout<<"NONE"<<endl;
- return 0;
- }