慕课-程序设计与算法(大学先修课)-郭炜-第六周练习题
2017-03-17 15:07
232 查看
1.Pell数列a1, a2, a3, …的定义是这样的,a1 = 1, a2 = 2, … , an = 2 * an − 1 + an - 2 (n > 2)。
给出一个正整数k,要求Pell数列的第k项模上32767是多少。
2.读入n(1 <= n <= 10000)个整数,求它们的和与均值。
3.写出函数中缺失的部分,使得函数返回值为一个整数,该整数的第i位和m的第i位相同,其他位和n相同。
请使用【一行代码】补全bitManipulation1函数使得程序能达到上述的功能
4.写出函数中缺失的部分,使得函数返回值为一个整数,该整数的第i位是n的第i位取反,其余位和n相同
请使用【一行代码】补全bitManipulation2函数使得程序能达到上述的功能
5.写出函数中缺失的部分,使得函数返回值为一个整数,该整数的左边i位是n的左边i位取反,其余位和n相同
请使用【一行代码】补全bitManipulation3函数使得程序能达到上述的功能
给出一个正整数k,要求Pell数列的第k项模上32767是多少。
#include<iostream> using namespace std; unsigned int s[1000000]; unsigned int w[1000000]; int main() { int n,m;s[1]=1;s[2]=2; for(int i=3;i<1000000;++i) { s[i]=(2*s[i-1]+s[i-2])%32767; } cin>>n; for(int i=0;i<n;++i) { cin>>m; w[i]=m; } for(int i=0;i<n;++i) { cout<<s[w[i]]<<endl; } return 0; }
2.读入n(1 <= n <= 10000)个整数,求它们的和与均值。
#include<iostream> using namespace std; int main() { int n,m; long long int sum=0; cin>>n; for(int i=0;i<n;++i) { cin>>m; sum+=m; } printf("%ld %.5f",sum,sum/(double)n); return 0; }
3.写出函数中缺失的部分,使得函数返回值为一个整数,该整数的第i位和m的第i位相同,其他位和n相同。
请使用【一行代码】补全bitManipulation1函数使得程序能达到上述的功能
#include <iostream> using namespace std; int bitManipulation1(int n, int m, int i) { // 在此处补充你的代码 } int main() { int n, m, i, t; cin >> t; while (t--) { cin >> n >> m >> i; cout << bitManipulation1(n, m, i) << endl; } return 0; }
#include <iostream> using namespace std; int bitManipulation1(int n, int m, int i) { return ((1<<i)&m)|((~(1<<i))&n); } int main() { int n, m, i, t; cin >> t; while (t--) { cin >> n >> m >> i; cout << bitManipulation1(n, m, i) << endl; } return 0; }
4.写出函数中缺失的部分,使得函数返回值为一个整数,该整数的第i位是n的第i位取反,其余位和n相同
请使用【一行代码】补全bitManipulation2函数使得程序能达到上述的功能
#include <iostream> using namespace std; int bitManipulation2(int n, int i) { // 在此处补充你的代码 } int main() { int t, n, i; cin >> t; while (t--) { cin >> n >> i; cout << bitManipulation2(n, i) << endl; } return 0; }
#include <iostream> using namespace std; int bitManipulation2(int n, int i) { return (1<<i)^n; } int main() { int t, n, i; cin >> t; while (t--) { cin >> n >> i; cout << bitManipulation2(n, i) << endl; } return 0; }
5.写出函数中缺失的部分,使得函数返回值为一个整数,该整数的左边i位是n的左边i位取反,其余位和n相同
请使用【一行代码】补全bitManipulation3函数使得程序能达到上述的功能
#include <iostream> using namespace std; int bitManipulation3(int n, int i) { // 在此处补充你的代码 } int main() { int t, n, i; cin >> t; while (t--) { cin >> n >> i; cout << bitManipulation3(n, i) << endl; } return 0; }
#include <iostream> using namespace std; int bitManipulation3(int n, int i) { return ((int)(-2147483648)>>(i-1))^n; } int main() { int t, n, i; cin >> t; while (t--) { cin >> n >> i; cout << bitManipulation3(n, i) << endl; } return 0; }
相关文章推荐
- 慕课-程序设计与算法(大学先修课)-郭炜-第一周练习题
- 慕课-程序设计与算法(大学先修课)-郭炜-第二周练习题
- 慕课-程序设计与算法(大学先修课)-郭炜-第五周练习题
- 慕课-程序设计与算法(大学先修课)-郭炜-第八九周练习题
- 慕课-程序设计与算法(大学先修课)-郭炜-第七周练习题
- 慕课-程序设计与算法(大学先修课)-郭炜-第三周练习题
- 期末考试 编程题#8:计算整数k(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;进制转换)
- 期末考试 编程题#6:MyString(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 文件操作与模板 编程题#2: 实数的输出格式(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- * 期末考试 编程题#7:字符串排序(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;函数对象作参数)
- 类和对象 编程题#1(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 标准模板库 STL-2 编程题#1(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;vector(sort)中重载 <)
- 期末考试 编程题#10:输出指定结果二(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;虚函数继承)
- * 文件操作与模板 编程题#1(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 期末考试 编程题#1:输出200(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 文件操作与模板 编程题#3: 整数的输出格式(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 标准模板库 STL-1 编程题#2 List(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 递归 编程题#1: 完美覆盖(Coursera 程序设计与算法 专项课程4 算法基础 郭炜、刘家瑛;Fibonacci数列)
- 简单的学生信息处理程序实现 (Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- ** 文件操作与模板 编程题#4: 字符串操作(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)