第十二周程序设计课解题报告
来源:互联网 发布:ios助手for mac 编辑:程序博客网 时间:2024/05/01 21:28
第十二周程序设计课解题报告
这周解题报告有点赶,请见谅
1000.sorted?
题目大意:写一个函数判断给定的数列是否非下降序列
解:注意处理边界情况,如循环是否会访问到数组以外的数,相邻两个数的大于小于号判断是否带等号
1001.!@#¥%……&*(
题目大意:将给定的两个升序数列合并成一个新的升序数列
解:这题不需要排序。因为两个子序列是升序的,那么当前新数列的最大数必定出自两个子序列的第一个数中的更小的一个,提取了数后就得到了两个新的子序列,仍然保持升序,所以可以不断重复这个过程。便得到了新生成的升序数列。
(注意第三个list3前面不能带const
1002、1003.sort
题目大意:将给定的数组排为升序 ,数据范围不同。
其实两个都用桶排序即可,但是我偷懒直接用sort了=W=
1004.T-primes
题目大意:若某个数因数分解后得到三个因数(注意是因数而非质因数)的话命名为T-primes。输入n个数判断当中有多少个T-primes
解:分析后可知t-primes肯定是一个完全平方数。而且他的开方一定得是质数。只要满足这两个条件。必定是t-primes。用函数实现判断会好看很多。
(记得用long long
1000.sorted?
题目大意:写一个函数判断给定的数列是否非下降序列
解:注意处理边界情况,如循环是否会访问到数组以外的数,相邻两个数的大于小于号判断是否带等号
bool isSorted(const int list[], int size){
for (int i=0; i<size-1; i++)
if (list[i]>list[i+1]) {
return false;
}
return true;
} 1001.!@#¥%……&*(
题目大意:将给定的两个升序数列合并成一个新的升序数列
解:这题不需要排序。因为两个子序列是升序的,那么当前新数列的最大数必定出自两个子序列的第一个数中的更小的一个,提取了数后就得到了两个新的子序列,仍然保持升序,所以可以不断重复这个过程。便得到了新生成的升序数列。
(注意第三个list3前面不能带const
void merge(const int list1[], int size1, const int list2[], int size2, int list3[]){
int left, right, now;
left=right=now=0;
while (left<size1 || right < size2){
if (left<size1 && right< size2){
if (list1[left]<list2[right]){
list3[now]=list1[left++];
}
else list3[now]=list2[right++];
}
else if (left<size1){
list3[now]=list1[left++];
}
else if (right<size2)
list3[now]=list2[right++];
now++;
}
} 1002、1003.sort
题目大意:将给定的数组排为升序 ,数据范围不同。
其实两个都用桶排序即可,但是我偷懒直接用sort了=W=
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cstdlib>
using namespace std;
int a[1111111], n;
int main(){
scanf("%d", &n);
for (int i=1; i<=n; i++) scanf("%d", &a[i]);
sort(a+1, a+1+n);
for (int i=1; i<=n; i++) printf("%d\n", a[i]);
} 1004.T-primes
题目大意:若某个数因数分解后得到三个因数(注意是因数而非质因数)的话命名为T-primes。输入n个数判断当中有多少个T-primes
解:分析后可知t-primes肯定是一个完全平方数。而且他的开方一定得是质数。只要满足这两个条件。必定是t-primes。用函数实现判断会好看很多。
(记得用long long
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cstdlib>
#include <cmath>
using namespace std;
long long a[11111], n;
bool check(long long x){
if (x==1) return false;
long long lab=trunc(sqrt(x));
if (lab*lab==x) {
for (int i=2; i<=trunc(sqrt(lab)); i++)
if (lab%i==0) return false;
return true;
}
else return false;
}
int main(){
scanf("%d", &n);
for (int i=1; i<=n; i++) scanf("%lld", &a[i]);
int ans=0;
for (int i=1; i<=n; i++) if (check(a[i])) {
ans++;
}
cout << ans << endl;
} 0 0
- 第十二周程序设计课解题报告
- 福州大学第十二届程序设计竞赛 解题报告
- 第七周程序设计课解题报告
- 第八周程序设计课解题报告
- 第十周程序设计课解题报告
- 第十一周程序设计课作业解题报告
- 第十四周程序设计课解题报告
- 第十五周程序设计作业解题报告
- 2016年湖南省第十二届大学生计算机程序设计竞赛 解题报告
- C++程序设计实验报告(六十五)---第十二周任务一
- C++程序设计实验报告(六十六)---第十二周任务二
- C++程序设计实验报告(六十七)---第十二周任务三
- C++程序设计实验报告(六十八)---第十二周任务四
- 第十二周作业报告
- 2008湘潭大学程序设计比赛解题报告
- 2011阿里巴巴程序设计公开赛 / 解题报告 8.18
- 深圳大学2012年程序设计比赛解题报告
- 第十一届北京师范大学程序设计竞赛解题报告
- iOS开发之网络篇——HTML+CSS+JS
- java interface
- LaTex 设置文字划掉效果
- 第十一周程序设计课作业解题报告
- 搭建高可用mongodb集群(一)——配置mongodb
- 第十二周程序设计课解题报告
- 网络素养公开课笔记(二)
- iOS 开发之网络——总结
- hdoj 2063 过山车(二分图匹配之匈牙利算法)
- 返回整数的getchar函数
- Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'content' a
- Android短信的发送和广播接收者实现短信的监听
- Eclipse不编译解决办法
- Android调试与测试