2017年吉林大学软件学院学硕高级程序设计复试题回忆
2018-03-02 15:45
387 查看
吉林大学软件学院学硕从2017年开始招生,复试为高级程序语言设计。此题目为学姐回忆,特此转载记录,并添加个人测试代码,希望对大家有帮助!
参考代码:
输出数列前 100 行之和。
参考代码:
(注意:不要丢掉负数这种情况)
示例代码:
数 1 是数列中的数;
若 x 是数列中得数那么 2x,3x 也是数列中的数;
数列中无其他的数;
参考代码:
一、 验证哥徳巴赫猜想
输入一个大于等于 6 的偶数,偶数等于两个素数之和。参考代码:
#include<iostream> using namespace std; int isPrime(int n){ //判断是否是素数 int i; if(n == 1) return 1; else{ for(i = 2;i < n;i++) if(n%i == 0) return 0; return 1; } } int main(){ int num; cin>>num; //输入数 while((num%2 != 0)||(num < 6)){//判断数字是否满足要求 cout<<"Error! Please enter another num"<<endl; cin>>num; } for(int< 4000 /span> i = 1;i < num;++i){ for(int j = 1;j < i;++j){ if(((i + j) == num) && isPrime(i) && (isPrime(j))) cout<<i<<"+"<<j<<"="<<num<<endl; } } return 0; }
二、 求数列前100行之和
定义一个数列 k(n):k = { 第一行 1 ,n=1 第二行 k(n- 1)×(- 2)+1 ,n 为偶数 第三行 k(n- 1)×(- 3)+1 ,n 为奇数 }
输出数列前 100 行之和。
参考代码:
#include<iostream> using namespace std; int k(int m){ int n; if(m == 1){ return 1; } else if(m%2==0){ return (k(m-1)*(-2) + 1); } else if(m%2!=0) return (k(m-1)*(-3) + 1); } int main(){ int sum = 0; //数列之和 for(int i = 1;i <= 100;++i){ //计算数列前100项之和 sum += k(i); } cout<<"sum = "<<sum<<endl; return 0; }
三、 求数字序列平台长度
给出一个数字序列,数字序列的平台长度就是数列中数字重复了几次,求出该数列平台的最长长度。(注意:不要丢掉负数这种情况)
示例代码:
#include<bits/stdc++.h> //因为复试手写代码,建议使用该头文件,防止漏掉 using namespace std; int main(){ string num; cin>>num; int arrayA[10] = {0},arrayB[10] = {0}; for(int i = 0;i < num.length();++i){ if(num[i] -'0' > 0 && num[i] != '-') //正数计数 arrayA[num[i] - '0']++; if(num[i] == '-'){ //判断是否是负数 arrayB[abs(num[i + 1] - '0')]++; i += 1; } } int max = 0; //寻找最大值,也可以使用库函数 for(int i = 0;i < 10;++i) if(max < arrayA[i]) max = arrayA[i]; for(int i = 0;i < 10;++i) if(max < arrayB[i]) max = arrayB[i]; cout <<"max is "<<max<<endl; return 0; }
四、 输出数列 A 的前 100 项
数列 A 的定义:数 1 是数列中的数;
若 x 是数列中得数那么 2x,3x 也是数列中的数;
数列中无其他的数;
参考代码:
#include<iostream> #include<set> using namespace std; int main(){ set<int> num; num.insert(1); set<int>::iterator it_begin = num.begin(); set<int>::iterator it_end = num.end(); for(set<int>::iterator it = it_begin;num.size() < 100;++it){ //cout<<*it<<endl; num.insert(2*(*it)); num.insert(3*(*it)); } for(set<int>::iterator it = it_begin; it != it_end; it++){ cout<<*it<<endl; } return 0; }
相关文章推荐
- 2017年复试程序设计题
- 吉大计算机学硕复试(回忆版)-2015(没全写)
- 2018年吉林大学软件学院软件工程学硕复试笔试题回忆
- JavaScript高级程序设计学习笔记第六章--面向对象程序设计
- C#2008与.NET 3.5 高级程序设计读书笔记(21)-- 对象序列化
- 2017年网易游戏数据挖掘/机器学习实习生笔试回忆
- C#2008与.NET 3.5 高级程序设计读书笔记(25)-- WCF
- PHP高级程序设计:模式、框架与测试这本书怎么样
- js高级程序设计笔记10--canvas绘图
- javascript高级程序设计第三版 第9章 客户端检测
- JavaScript高级程序设计(第3版)第三章读书笔记
- C语言是应用最为广泛的一种高级程序设计语言
- JavaScript高级程序设计 第二章 在HTML中使用javascript
- 2017年西南民族大学程序设计竞赛-网络同步赛 A 星图【思维维护】
- 2017年西南民族大学程序设计竞赛-网络同步赛(代码)
- 2017年浙江工业大学大学生程序设计迎新赛预赛
- 2017年团体程序设计天梯赛-决赛小结
- JavaScript高级程序设计:访问指定节点
- JS高级程序设计_02
- js高级程序设计(第三版)--元操作符递增和递减操作符(前置型和后置型)详解