程序设计与算法 第六周测验
2016-09-14 11:22
357 查看
1:Pell数列
#include <iostream> using namespace std; int main() { int n; long k; long long P[1000000+1]={0}; P[1]=1; P[2]=2; for (long i=3;i<=1000000; i++) P[i] = (2 * P[i-1] + P[i-2])%32767; cin >> n; while (n--) { cin >> k; cout << P[k] << endl; } return 0; }
2:求最大公约数问题
#include <iostream> using namespace std; long long gy(long long a, long long b) { if (a%b==0) return b; return gy(b, a%b); } int main() { long long a,b; cin >> a >> b; cout << gy(a, b) << endl; return 0; }
3:编程填空:第i位替换
#include <iostream> using namespace std; int bitManipulation1(int n, int m, int i) { // 在此处补充你的代码 return (((m>>i)&1) == 0) ? (n & (~(1<<i))) : (n | (1<<i)); } 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位取反
#include <iostream> using namespace std; int bitManipulation2(int n, int i) { // 在此处补充你的代码 return (((n>>i)&1)==0) ? (n | 1<<i) : (n & (~(1<<i))); } int main() { int t, n, i; cin >> t; while (t--) { cin >> n >> i; cout << bitManipulation2(n, i) << endl; } return 0; }
5:编程填空:左边i位取反
#include <iostream> #include <bitset> using namespace std; int bitManipulation3(int n, int i) { // 在此处补充你的代码 cout << bitset<sizeof(int)*8>(n) << endl; cout << bitset<sizeof(int)*8>((unsigned int)n>>(sizeof(n)*8-i)) << endl; cout << bitset<sizeof(int)*8>(~(n>>(sizeof(n)*8-i))) << endl; cout << bitset<sizeof(int)*8>((~(n>>(sizeof(n)*8-i)))<<(sizeof(n)*8-i)) << endl; cout << endl; unsigned long m = (unsigned int)n; int o = (int)(((m<<i)&(0x0ffffffff))>>i); cout << n << " " << i << " " << m << endl; cout << bitset<sizeof(int)*8>(n<<i) << endl; cout << bitset<sizeof(int)*8>(m<<i) << endl; cout << bitset<sizeof(int)*8>(o) << endl; cout << bitset<sizeof(int)*8>( ((~(n>>(sizeof< 4000 /span>(n)*8-i)))<<(sizeof(n)*8-i)) + (int)((((unsigned long)n<<i)&(0x0ffffffff))>>i) )<< endl; return ((~(n>>(sizeof(n)*8-i)))<<(sizeof(n)*8-i)) + (int)((((unsigned long)n<<i)&(0x0ffffffff))>>i); } int main() { int t, n, i; cin >> t; while (t--) { cin >> n >> i; cout << bitManipulation3(n, i) << endl; } return 0; }
6:编程填空:计算整数k
#include <iostream> #include <iomanip> using namespace std; int main() { unsigned int t, n, i, j, m, mi, mj; cin >> t; while (t--) { cin >> n >> i >> j; mi = (n>>i)&1; mj = (((n>>j)&1)==0)?1:0; m = (mi<<i) + (mj<<j); for (unsigned int k=i+1; k<j; k++) m += 1<<k; cout << setbase(16) << m << endl; } return 0; }
-eof-
相关文章推荐
- 程序设计与算法 第十周测验
- 程序设计与算法 第三周测验
- 1:角谷猜想(程序设计与算法(一)第四周测验(2017夏季))
- 4:求特殊自然数(程序设计与算法(一)第四周测验(2017夏季))
- 程序设计与算法 第八、九周测验
- 程序设计实习MOOC / 程序设计与算法(一)第三周测验(2017冬季)2:求一元二次方程的根
- 程序设计与算法 第一周测验
- 程序设计实习MOOC / 程序设计与算法(一)第三周测验(2017冬季)3:点和正方形的关系
- 2:正常血压(程序设计与算法(一)第四周测验(2017夏季)
- 程序设计与算法(二)测验汇总011:最佳加法表达式(DP、高精度)
- 程序设计实习MOOC / 程序设计与算法(一)第三周测验(2017冬季)4:苹果和虫子2
- 程序设计实习MOOC / 程序设计与算法(一)第三周测验(2017冬季)6:求整数的和与均值
- 程序设计实习MOOC / 程序设计与算法(一)第三周测验(2017冬季)5:简单计算器
- 程序设计与算法 第七周测验
- 慕课-程序设计与算法(大学先修课)-郭炜-第六周练习题
- 程序设计与算法(一)第一周测验(2017夏季) 解题报告
- 6:数字统计( 程序设计与算法(一)第四周测验(2017夏季)
- 程序设计与算法(一)C语言程序设计CAP 第六周
- 程序设计实习MOOC - 程序设计与算法(三)第一周测验 4-神秘的数组初始化
- 程序设计实习MOOC / 程序设计与算法(一)第三周测验(2017冬季)8:奥运奖牌计数